java - 如何在java中将附加选项和StandardCharsets/Encoding设置为BufferedWriter?

标签 java file filewriter

我是 java 编程新手,正在寻找使用 java 编写和附加文件内容的选项。

以下 C# 选项的类似选项。

File.WriteAllText(string path, string contents, Encoding encoding);
File.AppendAllText(string path, string contents, Encoding encoding);

我虽然使用BufferedWriter,它可以选择为FileWriter(字符串路径, boolean 附加)传递true/false,但我没有提供编码的选项。

try (FileWriter fw = new FileWriter(path, false);
    BufferedWriter bw = new BufferedWriter(fw)) {
    bw.write("appending text into file");
}

如果我使用 Files.newBufferedWriter 初始化 BufferedWriter,我可以提供 StandardCharsets,但它没有选项在现有文件的情况下追加。

try (BufferedWriter bw = Files.newBufferedWriter(Paths.get(path), StandardCharsets.UTF_8)) {
    bw.write("test");
    bw.append("append test");
}

是否可以同时定义这两个选项(附加选项和 StandardCharsets)?

最佳答案

是的。如果你查看 Files 类的实现,有一个方法如下:

public static BufferedWriter newBufferedWriter(Path path, Charset cs, OpenOption... options)

这样你就可以调用像

这样的方法
BufferedWriter bw = Files.newBufferedWriter(Paths.get(path), StandardCharsets.UTF_8, 
                    StandardOpenOption.CREATE, StandardOpenOption.APPEND)

如果您使用像 Intellij 这样的 IDE,它会建议您可以调用哪些公共(public)方法。

关于java - 如何在java中将附加选项和StandardCharsets/Encoding设置为BufferedWriter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54199820/

相关文章:

java - 在流上传递 javax.mail.Message

java - 制作 Math.pow() 方法的副本

java - 如何在 Java 中将 List<String[]> 转换为不带 ""的逗号分隔字符串

python - Django:检查图像是否存在于某个特定的 url

c# - 7zip 中的 7z.sfx 和 7zsd.sfx 模块有什么区别?

java - 尽管 while 循环中有条件,扫描仪输入仍附加到文本文件

java - 从 Java 读取和编辑文件

java - 我有多个 Elasticsearch 的应该案例,但只有第一个有效

java - 用于从二进制写入 wav 文件的简单 Java 库

c# - 为什么我不能在 MVC Controller 中使用 System.IO.File 方法?