请教一个问题
用流输出文件的时候,为什么文件末总是会多一行?大家有遇到过这种情况吗?
我的代码如下try
{
String fileName = request.getParameter("filename");
String filepath =request.getRealPath("/")+"web\\JRTJ\\message_data\\jrtj_message\\"+fileName;
System.out.println("filepath is "+ filepath);
//读到流中
InputStream inStream=new FileInputStream(filepath); //设置输出的格式
response.reset();
response.setContentType("plain");
// response.addHeader("Content-Disposition","attachment; filename=\"" + fileName + "\"");
response.setHeader("Content-disposition","attachment; filename="+new String(fileName.getBytes("gb2312"),"iso8859-1"));
//循环取出流中的数据
byte[] b = new byte[10000];
int len;
OutputStream outStream = response.getOutputStream();
System.out.println("IO test!");
while((len=inStream.read(b)) >0)
{
System.out.println(len);
outStream.write(b,0,len);//这里输出过后,文件末尾会多一行,去不掉????
}
outStream.flush();
outStream.close();
inStream.close();
}
catch(Exception e)
{
e.printStackTrace();
} 在上面注明处,输出文件后老是会自动多一行,和原来的文件不一样
有人遇到过这种情况吗?
用流输出文件的时候,为什么文件末总是会多一行?大家有遇到过这种情况吗?
我的代码如下try
{
String fileName = request.getParameter("filename");
String filepath =request.getRealPath("/")+"web\\JRTJ\\message_data\\jrtj_message\\"+fileName;
System.out.println("filepath is "+ filepath);
//读到流中
InputStream inStream=new FileInputStream(filepath); //设置输出的格式
response.reset();
response.setContentType("plain");
// response.addHeader("Content-Disposition","attachment; filename=\"" + fileName + "\"");
response.setHeader("Content-disposition","attachment; filename="+new String(fileName.getBytes("gb2312"),"iso8859-1"));
//循环取出流中的数据
byte[] b = new byte[10000];
int len;
OutputStream outStream = response.getOutputStream();
System.out.println("IO test!");
while((len=inStream.read(b)) >0)
{
System.out.println(len);
outStream.write(b,0,len);//这里输出过后,文件末尾会多一行,去不掉????
}
outStream.flush();
outStream.close();
inStream.close();
}
catch(Exception e)
{
e.printStackTrace();
} 在上面注明处,输出文件后老是会自动多一行,和原来的文件不一样
有人遇到过这种情况吗?
{
if(len=inStream.read(b)) <=0){
break;
}
System.out.println(len);
outStream.write(b,0,len);//这里输出过后,文件末尾会多一行,去不掉????
}
应该是这里出问题了
response.reset();
response.setContentType("plain");
response.setHeader("Content-disposition","attachment; filename="+new String(fileName.getBytes("gb2312"),"iso8859-1")); 但是这里只是设置下载的格式是无类型的啊,怎么会传的时候多了一行?