wy123123000
2017-09-15 08:50下载大文件时内存溢出怎么解决??
麻烦帮忙看看
报错:java.lang.OutOfMemoryError: Java heap space
@RequestMapping("/download")
public void download (HttpServletResponse res,@Param("url")String url) throws IOException{
byte[] retArr = null;
String fileName = new String(url.getBytes(),"ISO-8859-1");
String path = request.getSession().getServletContext().getRealPath("vod"+File.separator+"log"+File.separator+url);
try {
File file = new File(path);
FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream(1000);
byte[] b = new byte[1000];
int n;
while ((n = fis.read(b)) != -1) {
bos.write(b, 0, n);
}
fis.close();
bos.close();
retArr = bos.toByteArray();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
OutputStream os = res.getOutputStream();
try {
res.reset();
res.setHeader("Content-Disposition", "attachment; filename="+fileName);
res.setContentType("application/octet-stream; charset=utf-8");
os.write(retArr);
os.flush();
} finally {
if (os != null) {
os.close();
}
}
}
- 点赞
- 回答
- 收藏
- 复制链接分享
3条回答
为你推荐
- ThreadPoolTaskExecutor 异步任务 对于长时间大数据的执行,执行一半线程终止。
- java
- sqlite
- intellij-idea
- spring
- 3个回答
- Ajax中type为psot的传参限制解决?
- ajax
- javascript
- 1个回答
- 伤不起的项目,宕机已成家常便饭
- struts
- hibernate
- 0个回答
- java解析xml文件多个线程同时访问时内存溢出
- xml
- 0个回答
- java 解压 zip文件的问题
- 企业应用
- 0个回答
换一换