Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将.txt文件导出到sFTP服务器后断线器不工作_Java_Tomcat_Sftp - Fatal编程技术网

Java 将.txt文件导出到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

我正在将.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    
我希望文件如下所示:

               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