主要是 URL 和 HttpURLConnection 類的運用,看代碼:
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比南充網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式南充網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋南充地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。
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?毫秒內(nèi)沒有連接上?則放棄連接
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];?//?根據(jù)實際情況可以?增大?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?不存在或者連接超時");
}
}
}
java文件下載不能下載pdf的原因:
1、電腦沒裝閱讀器。
2、文件加密了。
3、對應的下載工具不支持。
4、Java類文件是Java程序的二進制表示形式。每一個類文件代表一個類或者接口。不可能在一個類文件中放入多個類或者接口。這樣就使得無論類文件是在哪一種平臺上生成,都可以在任何主機上執(zhí)行。
是不是沒有設置下載文件的長度,導致下載來以后長度不一致?lián)p壞
如下這段代碼:
response.addHeader("Content-Length",?""?+?file.length());?//file.length()?就是pdf的大小
解析指定頁面,得到pdf文件的地址,用URL來取回pdf的輸入流,然后寫到本地文件。