gpt4 book ai didi

java - Servlet写入文件末尾包含二进制文件

转载 作者:行者123 更新时间:2023-11-30 03:18:32 24 4
gpt4 key购买 nike

我有一个 servlet,可以让用户从服务器下载文件。原始文件是人类可读的,但下载的文件在文件末尾始终包含二进制内容。

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);
}

关于java - Servlet写入文件末尾包含二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31921689/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com