我使用HttpURLConnection
从网址下载文件。
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
)?
是否有网址可以建议我可以尝试使用此代码下载大文件?
答案 0 :(得分:0)
正如评论中所建议的那样,自己创建一个大文件。要通过HTTP提供服务,最简单的方法可能是从放置文件的目录运行Python 3 -
python -m http.server
将在8000上启动服务器。有关详细信息,请参阅this blog post,或查看python文档。
然后你可以自己测试一下。