当我在Linux上使用鼠标垫查看文件时,它看起来是正确的。当我使用记事本查看Windows XP或Windows 7上的文件时,输出全部在同一行并且不正确。
这是我在Linux上获得的out.txt的(正确)输出:
3.40 4.50 5.60
3.40 4.50 5.60
3.40 4.50 5.60
编辑:我使用CR + LF对文本进行编码,看起来是正确的,但是如何以这种方式导出java?
这是代码,它仅用于测试。
import java.io.*;
import java.util.*;
public class untitled {
public static void main (String args[]) throws FileNotFoundException {
PrintWriter output = new PrintWriter("out.txt");
double number1 = 3.4;
double number2 = 4.5;
double number3 = 5.6;
for (int x=0; x<3; x++) {
output.printf("%6.2f",number1);
output.printf("%12.2f",number2);
output.printf("%12.2f",number3);
output.println("");
}
output.close();
}
}
谢谢!
答案 0 :(得分:2)
它看起来“怪异”的原因是因为用于分隔行的Windows约定/标准是回车符,换行符("\r\n"
),而不是换行符的{nix方式({{1 }})。因此,如果您使用记事本等基本编辑器,则所有内容似乎都在同一行。更好的编辑器,如Notepad ++,甚至是wordpad,即使它是* nix格式,也会正确显示文本文件。
如果在Windows中运行Java程序,则会相应地设置行分隔符,但是您也可以明确更改行分隔符,以便"\n"
使用System.setProperty() "\r\n"
。 1}}密钥。
答案 1 :(得分:2)
如果你做printf(“%n”); Java将为您的平台打印相应的行分隔符。