小弟想在jsp中点击1个按钮下载文件,点击“下载”按钮后,成功弹出下载对话框,“打开”和“保存”都没报错,但是点击“取消”,servlet就有错误发生: “Outputstream encountered error during write”,意思是说在写文件的时候流发生错误。请问如何解决这个问题,十分感谢!!!servlet中的代码如下:public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String fileName = "D:\\test.csv";
FileInputStream fileInputStream = new FileInputStream(fileName);
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
response.reset(); response.setContentType("text/html;");
response.setHeader("Content-Disposition", "attachment;filename="+fileName);
OutputStream outputStream = response.getOutputStream();
byte[] b = new byte[1024];
int len = 0;
while((len=bufferedInputStream.read(b)) != -1){
outputStream.write(b,0,len);
}
outputStream.close();
bufferedInputStream.close();
fileInputStream.close();
}
String fileName = "D:\\test.csv";
FileInputStream fileInputStream = new FileInputStream(fileName);
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
response.reset(); response.setContentType("text/html;");
response.setHeader("Content-Disposition", "attachment;filename="+fileName);
OutputStream outputStream = response.getOutputStream();
byte[] b = new byte[1024];
int len = 0;
while((len=bufferedInputStream.read(b)) != -1){
outputStream.write(b,0,len);
}
outputStream.close();
bufferedInputStream.close();
fileInputStream.close();
}
解决方案 »
- 对高级List进行查询,求高级写法。
- 急问java 高手基本的入门书和库函数语法,参数和功能介绍的书和查询网站?!
- 谁有common-fileupload组件的源码啊?谢谢
- java的一个新学者,请问一下VISUAL JAVA
- dom4j如何解析多子节点XML文件
- mysql 中的 datetime 类型如何映射到hibernate中阿
- java打印机报错,急,跪求
- weblogic中使用struts,在服务器上使用ant下载cvs,编译,部署后就出错
- 如何在局域网中实现邮件发送?
- Spring Boot linux 服务器启动配置JDK
- struts2中选中下拉框中的一项出现它所对应的checkbox选项,并连接了数据库
- java程序输出ASCII码,怎么就是没有结果呢???
com.ibm.wsspi.webcontainer.ClosedConnectionException:OutputStream encountered error during write.错误定位在: outputStream.write(b,0,len); 这一行。点击“打开”和“保存”都没问题,点击“取消”就发生这个错误。请大家指点指点!谢谢!
所以异常是会发生的,这很正常,所以改一下while((len=bufferedInputStream.read(b)) != -1){
outputStream.write(b,0,len);
} 判断连接是否正连接着