使用 java.nio.files 选择 EOL
Selecting EOL with java.nio.files
如何使用 java.nio.file.Files.write
select Unix 行尾 \n
?
可能吗?
我没有找到要 selected 的任何选项或常量。
这是我的方法
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);
}
}
您别无选择,只能打开 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 说的做;你的选择!)
您可以覆盖 line.separator
属性
System.setProperty("line.separator", "\n");
PRO:您也可以在非 UNIX 环境中将 Files.write(...
与 UNIX lineends 一起使用
CON:更改此 属性 很可能会产生意想不到的副作用
或者你将这些行写在一个循环中。
如何使用 java.nio.file.Files.write
select Unix 行尾 \n
?
可能吗?
我没有找到要 selected 的任何选项或常量。
这是我的方法
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);
}
}
您别无选择,只能打开 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 说的做;你的选择!)
您可以覆盖 line.separator
属性
System.setProperty("line.separator", "\n");
PRO:您也可以在非 UNIX 环境中将 Files.write(...
与 UNIX lineends 一起使用
CON:更改此 属性 很可能会产生意想不到的副作用
或者你将这些行写在一个循环中。