【发布时间】:2018-06-05 21:53:06
【问题描述】:
在服务器端代码中,我将缓冲区大小和内容长度设置为 File.length(),然后使用 FileInputStream 打开文件。 稍后使用 HttpResponse.getOutputStream() 获取输出流并转储使用 FileInputStream
读取的数据字节我正在使用 Apache Tomcat 7.0.52、Java 7
在客户端
文件下载器.java
URL url = new URL("myFileURL");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setDoInput(true);
con.setConnectTimeout(10000);
con.setReadTimeout(10000);
con.setRequestMethod("GET");
con.setUseCaches(false);
con.setRequestProperty("User-Agent", "Mozilla/5.0");
con.connect();
FileOutputStream fos = new FileOutputStream("filename");
if(con.getResponseCode()==200){
InputStream is = con.getInputStream();
int readVal;
while((readVal=is.read())!=-1) fos.write(readVal);
}
fos.flush()
fos.close();
所以上面的代码无法下载大文件。 在使用 Java 7 的客户端上
【问题讨论】:
-
请阅读minimal reproducible example 并相应地增强您的问题。 “下载失败”不是准确的问题描述。
-
你刚刚编辑了你的代码之后 @lance-java 答案。我认为这不是一个好习惯。