Java 在utf8中追加到文件
对于一个项目,我需要使用UTF-8编码附加到文本文件。 在我的研究中,我发现了两种可能性:Java 在utf8中追加到文件,java,character-encoding,append,bufferedwriter,Java,Character Encoding,Append,Bufferedwriter,对于一个项目,我需要使用UTF-8编码附加到文本文件。 在我的研究中,我发现了两种可能性: BufferedWriter out = new BufferedWriter( new OutputStreamWriter(new FileOutputStream("file.txt), "UTF-8") ) 这将以UTF-8格式写入我的文件,但它将覆盖它,而不是附加到它(如果它已经存在) 然后,我在FileWriter中找到了一段代码,该代码通过一个参数指向一个现有文件,但它不会明确使用
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=新的BufferedWriter
新的OutputStreamWriter
new FileOutputStreamfile.txt,true,//true以追加
StandardCharsets.UTF_8//集合编码
;
您忘记将true参数添加到FileOutputStream构造函数:
BufferedWriter out=新的BufferedWriter
新的OutputStreamWriter
new FileOutputStreamfile.txt,true,//true以追加
StandardCharsets.UTF_8//集合编码
;
看这个答案:看这个答案:呸!显然,我没有在FileOutputStream上设置它,我只查看了FileWriter选项。duh!显然,我没有在FileOutputStream上设置它,我只查看了FileWriter选项。
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();
}