簡體   English   中英

HttpURLConnection並下載大文件

[英]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的文件總是很小。

我想知道使用此代碼下載較大的文件會發生什么:它將繼續工作還是會引發異常? 我是否需要為更大的文件實現代碼(利用setConnectTimeoutsetReadTimeout )?

是否有網址可以建議我在哪里可以嘗試使用此代碼下載大文件?

如注釋中所建議,自己創建一個大文件。 要通過HTTP提供服務,最簡單的方法可能是從放置文件的目錄中運行Python 3-

python -m http.server

它將在8000上啟動服務器。有關更多詳細信息,請參見此博客文章 ,或查看python文檔。

然后,您可以自己對此進行測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM