「java下载大文件」java下载大文件失败
今天给各位分享java下载大文件的知识,其中也会对java下载大文件失败进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java文件下载超过4G文件错误
- 2、我写了个下载程序,用Java写的,但是写完以后发现下载大文件的时候报错,内存溢出,能看看是哪的问题么?
- 3、Java 批量大文件上传下载如何实现?
- 4、resin服务器下用java下载pdf文件,下载下来的文件比源文件大了一倍多,不能打开。
java文件下载超过4G文件错误
JVM可以调到那么大?
如果和JAVA环境相关,那就和代码无关了。(估计上面这个小文件下载没问题吧)
记得JVM只能达到物理内存的1/4?
我写了个下载程序,用Java写的,但是写完以后发现下载大文件的时候报错,内存溢出,能看看是哪的问题么?
不能一次读取完,大文件很容易内存溢出。参考下:
public static void download(String path, HttpServletResponse response) throws Exception {
try {
File file = new File(path);
if (file.exists()) {
String filename = file.getName();
InputStream fis = new BufferedInputStream(new FileInputStream( file));
response.reset();
response.setContentType("application/x-download");
response.addHeader("Content-Disposition","attachment;filename="+ new String(filename.getBytes(),"iso-8859-1"));
response.addHeader("Content-Length", "" + file.length());
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
response.setContentType("application/octet-stream");
byte[] buffer = new byte[1024 * 1024 * 4];
int i = -1;
while ((i = fis.read(buffer)) != -1) {
toClient.write(buffer, 0, i);
}
fis.close();
toClient.flush();
toClient.close();
try {
response.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
PrintWriter out = response.getWriter();
out.print("script");
out.print("alert(\"not find the file\")");
out.print("/script");
}
} catch (IOException ex) {
PrintWriter out = response.getWriter();
out.print("script");
out.print("alert(\"not find the file\")");
out.print("/script");
}
}
Java 批量大文件上传下载如何实现?
解决这种大文件上传不太可能用web上传的方式,只有自己开发插件或是当门客户端上传,或者用现有的ftp等。
1)开发一个web插件。用于上传文件。
2)开发一个FTP工具,不用web上传。
3)用现有的FTP工具。
下面是几款不错的插件,你可以试试:
1)Jquery的uploadify插件。具体使用。你可以看帮助文档。
resin服务器下用java下载pdf文件,下载下来的文件比源文件大了一倍多,不能打开。
这个似乎真有问题,把循环读取和写出是不是要改成这样更好一些
while ((read = input.read(buffBytes,0,1024)) != -1) {
allLength += read;
os.write(buffBytes, 0, read);
}
java下载大文件的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java下载大文件失败、java下载大文件的信息别忘了在本站进行查找喔。
发布于:2022-12-05,除非注明,否则均为
原创文章,转载请注明出处。