如何在Java中获得一个依赖于平台的换行符?我不能到处都用“\n”。


当前回答

你可以使用

System.getProperty("line.separator");

得到行分隔符

其他回答

common -lang库有一个名为SystemUtils的常量字段。LINE_SEPARATOR

从JDK 1.1开始,BufferedWriter类就有了"newLine()"方法,用于编写依赖于平台的新行。它还提供了StringWriter类,使得提取新行成为可能:

public static String getSystemNewLine() {
    try {
        StringWriter sw = new StringWriter();
        BufferedWriter bw = new BufferedWriter(sw);
        bw.newLine();
        bw.flush();
        String s = sw.toString();
        bw.close();
        return s;
    } catch (Exception e) {
        throw new Error(e);
    }
}

如果使用BufferedWriter实例写入文件,请使用该实例的newLine()方法。它提供了一种独立于平台的方式来在文件中写入新行。

StringBuilder newLine=new StringBuilder();
newLine.append("abc");
newline.append(System.getProperty("line.separator"));
newline.append("def");
String output=newline.toString();

上面的代码段将有两个字符串,由新行分隔,与平台无关。

如果您试图将换行符写入文件,您可以简单地使用BufferedWriter的newline()方法。