java中的回车符("\ r \n")

Man*_*anu 3 java

我在使用java代码的unix环境中创建了一个文本文件.

为了编写文本文件,我正在使用java.io.FileWriter和BufferedWriter.对于每行之后换行我使用bw.write("\ r \n")方法.(其中bw是BufferedWriter的对象)并通过将来自unix环境本身的邮件附加到其他环境(如(mainframe,windows))来发送该文本文件

我的问题是,如果我的客户在大型机系统中下载文本文件,他们发现在文本文件中有一个"特殊字符"(如小矩形框)呈现和数据未正确对齐.

bw.write("\ r \n")不工作我想是这样..(但在windows中正常工作).

我希望在unix环境中使用相同的文本文件对齐
,如果他们在大型机,Windows环境或任何其他环境中打开文本文件,也没有任何特殊字符符号.

如何解决问题.感谢您的帮助.

粘贴我的java代码片段供你参考..(在unix
环境下运行java代码)

File f = new File(strFileGenLoc);
BufferedWriter bw = new BufferedWriter(new FileWriter(f, false));
rs = stmt.executeQuery("select * from jpdata");
while ( rs.next() ) {
   bw.write(rs.getString(1)==null? "":rs.getString(1));
   bw.newLine();
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 7

与您的声明相反,您的代码显然不是在每行后写"\ r \n".它的调用BufferedWriter.newLine()使用当前平台的默认行分隔符(除非您明确设置了line.separator系统属性).在Unix系统上,这将是"\n".

现在,您需要考虑您希望结果在将要读取的目标系统上的内容.对于Windows,这意味着你应该明确地写下"\ r \n"...我不知道你提到的大型机 - 你需要提供更多细节.

请注意,有不同的行分隔符这一事实意味着没有一个文本文件是普遍适用的.不同平台上的许多文本编辑器可以处理任何行分隔符...但总会有一些不会:(