接下来我将为你讲解如何使用Java实现文件下载的两种方式。
方式一:使用Java IO流实现文件下载
使用Java IO流实现文件下载的过程如下:
- 创建一个URL对象,用于指定文件所在的URL地址。
- 使用
openStream()
方法打开指定URL的流对象。 - 创建一个
File
对象并指定文件保存路径。 - 使用IO流将打开的URL流中的数据读取写入到本地文件中。
- 关闭IO流和URL流对象。
以下是一段使用Java IO流实现文件下载的示例代码:
import java.io.*;
import java.net.URL;
public class DownloadFileWithJavaIO {
public static void main(String[] args) {
String urlStr = "http://example.com/file.pdf"; //指定文件所在URL地址
String savePath = "/Users/downloads/file.pdf"; //指定文件保存路径
try {
URL url = new URL(urlStr);
BufferedInputStream bis = new BufferedInputStream(url.openStream());
FileOutputStream fos = new FileOutputStream(new File(savePath));
byte[] buffer = new byte[1024];
int len;
while ((len = bis.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
fos.close();
bis.close();
System.out.println("文件下载完成!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
方式二:使用Apache HttpClient库实现文件下载
使用Apache HttpClient库实现文件下载的过程如下:
- 创建一个
HttpClient
对象。 - 创建一个
HttpGet
对象并指定下载文件的URL地址。 - 执行
execute()
方法获取响应对象。 - 获取响应的输入流并将输入流中的文件写入到本地文件中。
- 关闭IO流和响应对象。
以下是一段使用Apache HttpClient库实现文件下载的示例代码:
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import java.io.*;
public class DownloadFileWithApacheHttpClient {
public static void main(String[] args) {
String urlStr = "http://example.com/file.pdf"; //指定文件所在URL地址
String savePath = "/Users/downloads/file.pdf"; //指定文件保存路径
try {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet(urlStr);
CloseableHttpResponse response = httpClient.execute(httpGet);
InputStream is = response.getEntity().getContent();
FileOutputStream fos = new FileOutputStream(new File(savePath));
byte[] buffer = new byte[1024];
int len;
while ((len = is.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
fos.close();
is.close();
response.close();
httpClient.close();
System.out.println("文件下载完成!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
希望这份攻略可以帮助到你实现Java中的文件下载。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java实现文件下载的两种方式 - Python技术站