Java中使用文件流下载网络文件可以通过以下步骤完成:
1.通过URL类创建网络文件的输入流(InputStream)
2.创建本地文件的输出流(OutputStream)
3.从网络文件的输入流中读取数据并将其写入本地文件的输出流中
4.关闭输入流和输出流
具体实现步骤如下所示:
示例1:使用Java标准库实现
import java.io.InputStream;
import java.io.FileOutputStream;
import java.net.URL;
public class NetworkFileDownload {
public static void main(String[] args) {
try {
//1.通过URL类创建网络文件的输入流(InputStream)
String urlLink = "https://example.com/images/pic.jpg";
URL url = new URL(urlLink);
InputStream inputStream = url.openStream();
// 2.创建本地文件的输出流(OutputStream)
FileOutputStream outputStream = new FileOutputStream("pic.jpg");
// 3.从网络文件的输入流中读取数据并将其写入本地文件的输出流中
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
//4.关闭输入流和输出流
inputStream.close();
outputStream.close();
System.out.println("文件下载成功!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
示例2:使用OkHttp库实现
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
import java.io.InputStream;
import java.io.FileOutputStream;
public class NetworkFileDownload {
public static void main(String[] args) {
OkHttpClient client = new OkHttpClient();
String urlLink = "https://example.com/images/pic.jpg";
Request request = new Request.Builder()
.url(urlLink)
.build();
try {
Response response = client.newCall(request).execute();
// 2.创建本地文件的输出流(OutputStream)
FileOutputStream outputStream = new FileOutputStream("pic.jpg");
InputStream inputStream = response.body().byteStream();
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
//4.关闭输入流和输出流
inputStream.close();
outputStream.close();
System.out.println("文件下载成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
以上两个示例都是通过网络下载图片并保存到本地,只是实现方式不同。示例一直接使用了Java标准库中的FileOutputStream类来保存文件,而示例二使用了OkHttp库来发送网络请求并下载文件。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java用文件流下载网络文件示例代码 - Python技术站