附加到 utf8 中的文件
Appending to file in utf8
对于一个项目,我需要使用 UTF-8 编码附加到文本文件。
在我的研究中,我发现了两种可能性:
BufferedWriter out = new BufferedWriter(
new OutputStreamWriter(new FileOutputStream("file.txt), "UTF-8")
)
这将以 UTF-8 格式写入我的文件,但它会覆盖它,而不是附加到它(如果它已经存在)。
然后我在 FileWriter
中找到了使用参数附加到现有文件的代码,但这不会明确使用 UTF-8,而是使用默认的系统字符集:
BufferedWriter out = new BufferedWriter(new FileWriter("myfile.txt", true))
我现在需要定义编码和附加到文件的可能性。仅依靠系统编码或更改这不是一个选项。
有什么想法吗?
您忘记将 true
参数添加到 FileOutputStream
构造函数中:
BufferedWriter out = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("file.txt", true), // true to append
StandardCharsets.UTF_8 // Set encoding
)
);
try {
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("myFile.txt", true), "UTF-8"));
out.write("Hello World");
out.close();
} catch (IOException e) {
e.printStackTrace();
}
对于一个项目,我需要使用 UTF-8 编码附加到文本文件。 在我的研究中,我发现了两种可能性:
BufferedWriter out = new BufferedWriter(
new OutputStreamWriter(new FileOutputStream("file.txt), "UTF-8")
)
这将以 UTF-8 格式写入我的文件,但它会覆盖它,而不是附加到它(如果它已经存在)。
然后我在 FileWriter
中找到了使用参数附加到现有文件的代码,但这不会明确使用 UTF-8,而是使用默认的系统字符集:
BufferedWriter out = new BufferedWriter(new FileWriter("myfile.txt", true))
我现在需要定义编码和附加到文件的可能性。仅依靠系统编码或更改这不是一个选项。
有什么想法吗?
您忘记将 true
参数添加到 FileOutputStream
构造函数中:
BufferedWriter out = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("file.txt", true), // true to append
StandardCharsets.UTF_8 // Set encoding
)
);
try {
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("myFile.txt", true), "UTF-8"));
out.write("Hello World");
out.close();
} catch (IOException e) {
e.printStackTrace();
}