gpt4 book ai didi

java - 使用java代码下载文件时,文件中的行会跳过换行符

转载 作者:行者123 更新时间:2023-11-30 04:19:51 26 4
gpt4 key购买 nike

我正在使用这样的java代码写入文件。

File errorfile = new File("ErrorFile.txt");
FileWriter ef = new FileWriter(errorfile, true);
BufferedWriter eb = new BufferedWriter(ef);
eb.write("the line contains error");
eb.newLine();
eb.write("the error being displayed");
eb.newLine();
eb.write("file ends");
eb.close();
ef.close();

此文件正在保存在服务器上。现在,当我使用 java 代码下载文件时,它会跳过换行符。下载代码为:

String fname = "ErrorFile.txt";
BufferedInputStream filein = null;
BufferedOutputStream output = null;
try {
File file = new File(fname); // path of file
if (file.exists()) {
byte b[] = new byte[2048];
int len = 0;
filein = new BufferedInputStream(new FileInputStream(file));
output = new BufferedOutputStream(response.getOutputStream());
response.setContentType("application/force-download");
response.setHeader("content-Disposition", "attachment; filename=" + fname); // downloaded file name
response.setHeader("content-Transfer-Encoding", "binary");
while ((len = filein.read(b)) > 0) {
output.write(b, 0, len);
output.flush();
}
output.close();
filein.close();
}
} catch (Exception e1) {
System.out.println("e2: " + e1.toString());
}

现在,当我打开下载的文件时,它应该如下所示:

the line contains error
the error being displayed
file ends

但是输出是

the line contains error (then a box like structure) the error being displayed (then a box like structure) file ends.

请建议...

最佳答案

@BalusC thats correct ... my server is linux and client is windows.. is theris any solution to this??

任何新手开发人员或至少计算机爱好者都应该知道基于 Linux/Unix 的操作系统使用 \n 作为换行符,而 Windows 使用 \r\n 作为换行符人物。 \n 在 Windows 中失败,但是 \r\n 在 Linux/Unix 中工作正常(它必须,否则例如 HTTP 也要求 \r\n 在 Linux/Unix 中也会失败)。

The newLine() method您用来打印换行符的仅打印系统的默认换行符,因此在您的服务器上为 \n 。但是,您的基于 Windows 的客户端需要 \r\n

您需要更换

eb.newLine();

eb.write("\r\n");

为了让它跨平台工作。

关于java - 使用java代码下载文件时,文件中的行会跳过换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17363686/

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