使用java.nio.files选择EOL

时间:2015-01-05 11:10:22

标签: java nio java.nio.file

如何使用\n选择Unix行尾java.nio.file.Files.write? 可能吗? 我没有找到任何选项或常数被选中。 这是我的方法

import java.io.File;
//...
public void saveToFile(String absolutePath) {
        File file = new File(path); 
        try {
            Files.write(file.toPath(), lines/*List<String>*/, StandardCharsets.UTF_8, StandardOpenOption.CREATE, StandardOpenOption.APPEND);
        } catch (IOException e) {
            log.error(e.getMessage(), e);
        }
    }

2 个答案:

答案 0 :(得分:1)

你真的没有其他选择,只能打开文件BufferedWriter并手写:

try (
    final BufferedWriter writer = Files.newBufferedWriter(file.toPath(),
        StandardCharsets.UTF_8, StandardOpenOption.APPEND);
) {
    for (final String line: lines) {
        writer.write(line);
        writer.write('\n');
    }
    // Not compulsory, but...
    writer.flush();
}

(或者像@SubOptimal所说的那样;你的选择!)

答案 1 :(得分:1)

您可以覆盖line.separator属性

System.setProperty("line.separator", "\n");

PRO :您也可以在非UNIX环境中将Files.write(...与UNIX线路端一起使用
CON :更改此属性很可能会产生意外的副作用

或者你在循环中写下这些行。