主要是 URL 和 HttpURLConnection 类的运用,看代码:
创新互联服务项目包括曲麻莱网站建设、曲麻莱网站制作、曲麻莱网页制作以及曲麻莱网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,曲麻莱网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到曲麻莱省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
import java.io.DataInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java点虐 .HttpURLConnection;
import java点虐 .URL;
public class HttpDownloader {
private static final String REMOTE_FILE_URL = "";
private static final String LOCAL_FILE_PATH = "D:/some.pdf"; // 改成你保存 文件的路径
public static void main(String[] args) {
new HttpDownloader(REMOTE_FILE_URL, LOCAL_FILE_PATH).download();
}
private String remoteFileUrl;
private String localFilePath;
public HttpDownloader(String remoteFileUrl, String localFilePath) {
this.remoteFileUrl = remoteFileUrl;
this.localFilePath = localFilePath;
}
public void download() {
try {
URL url = new URL(remoteFileUrl);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setConnectTimeout(5 * 1000); // 5000 毫秒内没有连接上 则放弃连接
httpURLConnection.connect(); // 连接
System.out.println("连接 URL 成功~");
int fileLenght = httpURLConnection.getContentLength();
System.out.println("文件大小:" + (fileLenght / 1024.0) + " KB");
System.out.println("开始下载...");
try (DataInputStream dis = new DataInputStream(httpURLConnection.getInputStream());
FileOutputStream fos = new FileOutputStream(localFilePath)) {
byte[] buf = new byte[10240]; // 根据实际情况可以 增大 buf 大小
for (int readSize; (readSize = dis.read(buf)) 0;) {
fos.write(buf, 0, readSize);
}
System.out.println("下载完毕~");
} catch (IOException ex) {
System.out.println("下载时出错");
}
httpURLConnection.disconnect();
} catch (IOException ex) {
System.out.println("URL 不存在或者连接超时");
}
}
}
解析指定页面,得到pdf文件的地址,用URL来取回pdf的输入流,然后写到本地文件。
java文件下载不能下载pdf的原因:
1、电脑没装阅读器。
2、文件加密了。
3、对应的下载工具不支持。
4、Java类文件是Java程序的二进制表示形式。每一个类文件代表一个类或者接口。不可能在一个类文件中放入多个类或者接口。这样就使得无论类文件是在哪一种平台上生成,都可以在任何主机上执行。