Java Servlet写入文件的末尾包含二进制文件
我有一个servlet让用户从服务器下载文件。原始文件是可读的,但下载的文件alwyas在文件末尾包含二进制内容Java Servlet写入文件的末尾包含二进制文件,java,servlets,Java,Servlets,我有一个servlet让用户从服务器下载文件。原始文件是可读的,但下载的文件alwyas在文件末尾包含二进制内容 HttpSession session = request.getSession(true); String fileName = session.getAttribute("download").toString(); System.out.println("Download file " + fileName); File file = new File(fileName); F
HttpSession session = request.getSession(true);
String fileName = session.getAttribute("download").toString();
System.out.println("Download file " + fileName);
File file = new File(fileName);
FileInputStream fileIn = new FileInputStream(file);
response.setContentType("text/plain");
response.setHeader("Content-Disposition", "attachment;filename=" + file.getName());
ServletOutputStream out = response.getOutputStream();
byte[] bytes = new byte[BYTES_DOWNLOAD];
while (fileIn.read(bytes, 0, BYTES_DOWNLOAD) != -1) {
out.write(bytes, 0, BYTES_DOWNLOAD);
}
out.flush();
out.close();
提前感谢。您看到了哪些二进制内容?是否可能是文件中的行尾,如果有的话?代码中的小错误:
byte[] bytes = new byte[BYTES_DOWNLOAD];
int count;
while ( (count = fileIn.read(bytes)) != -1) {
out.write(bytes, 0, count);
}
令人惊叹的!这就是问题所在。谢谢