對這文章發表回應
發表限制: 非會員 可以發表
發表者: 冷日 發表時間: 2019/4/5 15:00:39
Appending to file in utf8
For a project I need to append to a textfile using UTF-8 encoding. During my research I found two possibilities:
This will write to my file in UTF-8, but it will overwrite it, rather than append to it if it already exist.
Then I found the code to apend to an existing file with a parameter in the FileWriter, but this will not use UTF-8 explicitely, rather than use the default system character set:
I now need the possibility to define BOTH the encoding as well as appending to a file. Just rely on the system encoding or change this is not an option.
You forgot to add the true paramter to the FileOutputStream constructor:
原文出處java - Appending to file in utf8 - Stack Overflow
For a project I need to append to a textfile using UTF-8 encoding. During my research I found two possibilities:
BufferedWriter out = new BufferedWriter(
new OutputStreamWriter(new FileOutputStream("file.txt), "UTF-8")
)
This will write to my file in UTF-8, but it will overwrite it, rather than append to it if it already exist.
Then I found the code to apend to an existing file with a parameter in the FileWriter, but this will not use UTF-8 explicitely, rather than use the default system character set:
BufferedWriter out = new BufferedWriter(new FileWriter("myfile.txt", true))
I now need the possibility to define BOTH the encoding as well as appending to a file. Just rely on the system encoding or change this is not an option.
You forgot to add the true paramter to the FileOutputStream constructor:
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();
}
原文出處java - Appending to file in utf8 - Stack Overflow