Java 将.txt文件导出到sFTP服务器后断线器不工作
我正在将.txt文件导出到sFTP服务器,当我从sFTP服务器下载文件时,以单行打印的所有文本表示换行器不工作,即使我将文件导出到本地文件夹换行器工作正常,但从sFTP换行器下载的文件不工作Java 将.txt文件导出到sFTP服务器后断线器不工作,java,tomcat,sftp,Java,Tomcat,Sftp,我正在将.txt文件导出到sFTP服务器,当我从sFTP服务器下载文件时,以单行打印的所有文本表示换行器不工作,即使我将文件导出到本地文件夹换行器工作正常,但从sFTP换行器下载的文件不工作 test|test|test|test test|test|test|test test|test|test|test 使用了System.lineSeparator()和\r\n,\r
test|test|test|test
test|test|test|test
test|test|test|test
使用了System.lineSeparator()和\r\n,\r以及更多示例,但文件仍在自定义中
test|test|test|test
test|test|test|test
test|test|test|test
我希望文件如下所示:
test|test|test|test
test|test|test|test
test|test|test|test
但下载后看起来如下所示:
test|test|test|test
test|test|test|test
test|test|test|test
测试|测试|测试|测试|测试|测试|测试|测试|测试|测试|测试|测试|测试|测试|测试
test|test|test|test
test|test|test|test
test|test|test|test
我正在Linux环境中使用Tomcat server和Java 8。您应该尝试使用:
test|test|test|test
test|test|test|test
test|test|test|test
public static String newline = System.getProperty("line.separator");
如果它不工作,它的“\”可能是这里的问题,你可以尝试加倍它
test|test|test|test
test|test|test|test
test|test|test|test
第一个说第二个不是计算机标记的FTP是臭名昭著的,因为当文件未作为二进制数据传输时(与文本相反),以
\r\n
结尾的Windows行可以转换为以\n
结尾的Unix行
test|test|test|test
test|test|test|test
test|test|test|test
在Windows上,带有\n
的文本文件在记事本等简单文本编辑器中不会被视为行分隔符
test|test|test|test
test|test|test|test
test|test|test|test
使用其他编辑器,如Notepad++或JEdit
test|test|test|test
test|test|test|test
test|test|test|test
所以
test|test|test|test
test|test|test|test
test|test|test|test
- 关于FTP使用二进制传输
- 使用程序员的编辑器
test|test|test|test
test|test|test|test
test|test|test|test
StringBuilder fileContent = new StringBuilder();
BufferedReader in = new BufferedReader(...);
for (;;) {
String line = in.readLine(); // No line ending!
if (line == null) {
break;
}
fileContent.append(line); // Forgotten: `.append("\r\n")`
}
return fileContent.toString();
所以
test|test|test|test
test|test|test|test
test|test|test|test
- 检查阅读代码
test|test|test|test
test|test|test|test
test|test|test|test
记事本仅识别CR、LF(0x0d、0x0a),而其他来源可能仅使用CR或LF
test|test|test|test
test|test|test|test
test|test|test|test
您无法使记事本的行为有所不同,因此您唯一的选择是确保内容具有记事本的正确顺序。请注意,记事本是唯一具有此限制的编辑器,因此,如果您的内容在记事本中工作,它将在其他任何地方工作
test|test|test|test
test|test|test|test
test|test|test|test
修复换行的一个简单方法是将文本复制并粘贴到Word中,然后再次粘贴到记事本中,换行将被“更正”为CR、LF序列
test|test|test|test
test|test|test|test
test|test|test|test
此外,您还可以使用其他文本编辑器,如记事本++、升华等。有关更多信息,请访问可能您的文本编辑器没有显示正确的格式。例如,我知道有时候记事本没有显示正确的结束行,但是记事本++工作得很好。非常感谢,这几天它一直在阻止我,但从你的角度来看,它工作得很好。谢谢你。我会给你一个答案:)
test|test|test|test
test|test|test|test
test|test|test|test