如何获得与平台相关的新行字符?

时间:2008-10-16 09:37:06

标签: java cross-platform newline eol

如何在Java中获得与平台相关的换行符?我无法在任何地方使用"\n"

9 个答案:

答案 0 :(得分:660)

Java 7现在有System.lineSeparator()方法。

答案 1 :(得分:642)

您可以使用

System.getProperty("line.separator");

获取行分隔符

答案 2 :(得分:352)

除了line.separator属性之外,如果您使用的是java 1.5或更高版本以及 String.format (或其他格式化方法),您可以使用{{ 1}}如

%n

有关详细信息,请参阅Java 1.8 API for Formatter

答案 3 :(得分:43)

如果您尝试在文件中写入换行符,则只需使用BufferedWriter的newLine()方法即可。

答案 4 :(得分:29)

这也是可能的:String.format("%n")

String.format("%n").intern()保存一些字节。

答案 5 :(得分:22)

commons-lang库有一个名为SystemUtils.LINE_SEPARATOR

的常量字段

答案 6 :(得分:12)

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

答案 7 :(得分:9)

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

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

答案 8 :(得分:-2)

避免使用String + String等追加字符串,而是使用StringBuilder。

String separator = System.getProperty( "line.separator" );
StringBuilder lines = new StringBuilder( line1 );
lines.append( separator );
lines.append( line2 );
lines.append( separator );
String result = lines.toString( );