java将InputStream下载为文件
时间: 2024-03-24 13:29:45 浏览: 125
Java 可以使用 `InputStream` 将文件下载到本地。下面是一个示例代码:
```java
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
public class DownloadFile {
public static void main(String[] args) {
String fileUrl = "https://example.com/file.pdf";
String saveDir = "/path/to/save/directory/";
String fileName = "file.pdf";
try {
// 创建 URL 连接
URL url = new URL(fileUrl);
URLConnection conn = url.openConnection();
// 获取文件输入流
InputStream inputStream = conn.getInputStream();
// 创建文件输出流
FileOutputStream outputStream = new FileOutputStream(saveDir + fileName);
// 缓冲区大小
byte[] buffer = new byte[1024];
int length;
// 从输入流中读取数据,写入输出流
while ((length = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, length);
}
// 关闭流
inputStream.close();
outputStream.close();
System.out.println("File downloaded successfully.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在上面的示例中,我们从 `fileUrl` 指定的 URL 中获取文件输入流,然后将其写入到本地目录 `saveDir` 中名为 `fileName` 的文件中。我们使用缓冲区大小为 1024 字节的字节数组来读取数据,每次从输入流中读取数据时,我们将缓冲区中的数据写入到输出流中。
请注意,在下载文件时,可能会抛出异常。因此,我们需要在 `try-catch` 块中处理异常。
阅读全文