「java下载大文件」java下载大文件失败

博主:adminadmin 2022-12-05 17:00:08 104

今天给各位分享java下载大文件的知识,其中也会对java下载大文件失败进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

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下载大文件的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-05,除非注明,否则均为首码项目网原创文章,转载请注明出处。