Java PrintWriter输出在记事本中看起来很奇怪

时间:2011-12-01 04:09:09

标签: java printf

当我在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();
    }
}

谢谢!

2 个答案:

答案 0 :(得分:2)

它看起来“怪异”的原因是因为用于分隔行的Windows约定/标准是回车符,换行符("\r\n"),而不是换行符的{nix方式({{1 }})。因此,如果您使用记事本等基本编辑器,则所有内容似乎都在同一行。更好的编辑器,如Notepad ++,甚至是wordpad,即使它是* nix格式,也会正确显示文本文件。

如果在Windows中运行Java程序,则会相应地设置行分隔符,但是您也可以明确更改行分隔符,以便"\n"使用System.setProperty() "\r\n"。 1}}密钥。

答案 1 :(得分:2)

如果你做printf(“%n”); Java将为您的平台打印相应的行分隔符。