2017-04-03 296 views
0

我正在使用FileUtils.copyInputStreamToFile下載各種文件(每個文件在10MB-200MB範圍內)。有些文件位於中國託管的CDN上,因此它的互聯網連接有時可疑。使用wget通常會導致文件下載正常 - 但它經常會顯示漫長的拖延時間,我期望FileUtils會中斷(我並不總是會出現錯誤)。在Groovy/Java下載文件下載

是否有配置copyInputStreamToFile,或替代它來處理停頓更好?我真的更喜歡這個呼叫去殼'wget'。

另外,是否有一個準確的方法來告訴下載是否失敗,以便我可以刪除不完整的文件並重新啓動(不對文件進行散列和比較)。

回答

1

您可以使用專門的庫來下載文件。谷歌API客戶端有一個例如:

https://developers.google.com/api-client-library/java/google-api-java-client/media-download

OutputStream out = new FileOutputStream("/tmp/Test.jpg"); 

MediaHttpDownloader downloader = new MediaHttpDownloader(transport, httpRequestInitializer); 
downloader.setProgressListener(new CustomProgressListener()); 
downloader.download(requestUrl, out); 

搜索「谷歌的API客戶端」,在行家的最新版本。