Java N/IO中的行分隔符?

sho*_*qie -1 java nio

使用时写入txt文件时如何插入新行java.nio.file?下面的代码产生具有一个线txt文件ABCDEF,而不是两个单独的行ABCDEF:

public static void main(String args[]) throws IOException {
        final Path PATH = Paths.get("test.txt");
        String test = "ABC\nDEF";
        Files.write(PATH, test.getBytes());
    }
Run Code Online (Sandbox Code Playgroud)

Tun*_*aki 5

从Java 7开始,您应该使用System.lineSeparator()而不是硬编码\n,因为行分隔符实际上取决于代码将运行的机器.

public static void main(String args[]) throws IOException {
    final Path PATH = Paths.get("test.txt");
    String test = "ABC" + System.lineSeparator() + "DEF";
    Files.write(PATH, test.getBytes());
}
Run Code Online (Sandbox Code Playgroud)

如果您仍在使用Java 6或更早版本,则可以实现相同的功能System.getProperty("line.separator")(请参阅Oracle文档).

  • OP使用`Files`类,因此可以安全地假设Java 7. (2认同)