【发布时间】:2015-02-18 17:14:30
【问题描述】:
我有一个在 Linux 机器上运行的 Java 应用程序,它正在生成一个文件,其中每个记录由新行分隔,
此文件将由在 Unix SunOS 系统上运行的应用程序使用,我下面的代码不会生成正确的文件。我的意思是下面的代码会生成一个文件,当我在 Unix 系统中使用 vi 编辑器打开它时,每行都以 ^M 字符结尾
bw = new BufferedWriter(new FileWriter(file));
bw.write("\n");
我必须写哪个字符才能在 Unix 系统中正确查看文件。
【问题讨论】:
-
如果显示的代码生成一个
\r\n行结尾,那就是大错特错了。您确定您查看的是正确的文件吗? -
我建议你使用 PrintWriter.println() 它会为你处理新的行。
-
@Herry 我将文件从 Linux 复制到 Windows,然后复制到 Unix。此操作是否操作文件?
-
@mmc18 是的,您用于传输文件的工具可能会更改行终止符。这取决于您使用的工具以及使用方式。
-
@mmc18 是的,二进制模式确保文件没有被更改。当您通过 Windows 时,它甚至应该可以工作(前提是您没有使用任何 Windows 工具触摸该文件)。