[英]HttpURLConnection and download large files
我使用HttpURLConnection
從URL下載文件。
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// optional default is GET
con.setRequestMethod("GET");
con.setRequestProperty("Cache-Control", "no-cache");
int responseCode = con.getResponseCode();
System.out.println("\nSending 'GET' request to URL : " + url);
System.out.println("Response Code : " + responseCode);
try {
InputStream inputStream = con.getInputStream();
FileOutputStream outputStream = new FileOutputStream("C:\\programs\\TRYFILE.csv");
int bytesRead = -1;
byte[] buffer = new byte[4096];
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
} catch(Exception e) {
} finally {
outputStream.close();
inputStream.close();
}
該代碼可用於下載小型文件(即25 KB)。 我沒有嘗試下載大文件(大約100 MB),因為來自特定URL的文件總是很小。
我想知道使用此代碼下載較大的文件會發生什么:它將繼續工作還是會引發異常? 我是否需要為更大的文件實現代碼(利用setConnectTimeout
或setReadTimeout
)?
是否有網址可以建議我在哪里可以嘗試使用此代碼下載大文件?
如注釋中所建議,自己創建一個大文件。 要通過HTTP提供服務,最簡單的方法可能是從放置文件的目錄中運行Python 3-
python -m http.server
它將在8000上啟動服務器。有關更多詳細信息,請參見此博客文章 ,或查看python文檔。
然后,您可以自己對此進行測試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.