原本想通过文件追加的方式,向.txt或者.json文件(其他也类似)结尾添加新的文本,开始通过FileWriter追加,但是中文追加后却成了乱码。
查了一圈下来结论是:Java FileWriter 默认是用(ISO-8859-1 or US-ASCII)西方编码的,而FileWriter类没有setEncoding的方法。希望通过设置编码方式的计划破灭了。
那么就换一种方法吧:
- <span style="font-size:18px;">BufferedWriter writer = new BufferedWriter (new OutputStreamWriter (new FileOutputStream (filePath,true),"UTF-8"));</span>
不需要改动原来的代码,只需要用上面的代码替换原来的
- <span style="font-size:18px;">FileWriter writer = new FileWriter(filePath,true);</span>