我在使用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)
与您的声明相反,您的代码显然不是在每行后写"\ r \n".它的调用BufferedWriter.newLine()使用当前平台的默认行分隔符(除非您明确设置了line.separator系统属性).在Unix系统上,这将是"\n".
现在,您需要考虑您希望结果在将要读取的目标系统上的内容.对于Windows,这意味着你应该明确地写下"\ r \n"...我不知道你提到的大型机 - 你需要提供更多细节.
请注意,有不同的行分隔符这一事实意味着没有一个文本文件是普遍适用的.不同平台上的许多文本编辑器可以处理任何行分隔符...但总会有一些不会:(
| 归档时间: |
|
| 查看次数: |
37449 次 |
| 最近记录: |