如何使用指定的字符集将文本附加到 Java 8 中的文件
How to append text to file in Java 8 using specified Charset
我正在寻找一种使用指定的 Charset cs
将文本附加到 Java 8 中的现有文件的简单且节省的解决方案。我找到的解决方案 here 处理标准 Charset
,这在我的情况下是不行的。
一种方法是使用 Files.write
that accepts a Charset 的重载版本:
import static java.nio.charset.StandardCharsets.UTF_8;
import static java.nio.file.StandardOpenOption.APPEND;
import static java.nio.file.StandardOpenOption.CREATE;
List<String> lines = ...;
Files.write(log, lines, UTF_8, APPEND, CREATE);
您可以使用 Guava 的追加方法 Class Files. Also, you can take a look to java.nio.charset.Charset。
Path path = Paths.get("...");
Charset charset = StandardCharsets.UTF_8;
List<String> list = Collections.singletonList("...");
Files.write(path, charset, list, StandardOpenOption.APPEND);
根据您所指问题中已接受的答案:
try (PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream("myfile.txt", true), charset)))) {
out.println("the text");
} catch (IOException e) {
//exception handling left as an exercise for the reader
}
我正在寻找一种使用指定的 Charset cs
将文本附加到 Java 8 中的现有文件的简单且节省的解决方案。我找到的解决方案 here 处理标准 Charset
,这在我的情况下是不行的。
一种方法是使用 Files.write
that accepts a Charset 的重载版本:
import static java.nio.charset.StandardCharsets.UTF_8;
import static java.nio.file.StandardOpenOption.APPEND;
import static java.nio.file.StandardOpenOption.CREATE;
List<String> lines = ...;
Files.write(log, lines, UTF_8, APPEND, CREATE);
您可以使用 Guava 的追加方法 Class Files. Also, you can take a look to java.nio.charset.Charset。
Path path = Paths.get("...");
Charset charset = StandardCharsets.UTF_8;
List<String> list = Collections.singletonList("...");
Files.write(path, charset, list, StandardOpenOption.APPEND);
根据您所指问题中已接受的答案:
try (PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream("myfile.txt", true), charset)))) {
out.println("the text");
} catch (IOException e) {
//exception handling left as an exercise for the reader
}