Java读/写文件更改字符?

时间:2018-12-22 22:07:40

标签: java

我有一段这样的代码:

data = new String(Files.readAllBytes(Paths.get(strFileName))); 
PrintWriter out = new PrintWriter(filename);
out.println(data);

当它写...时,它正在将引号(可能还有其他内容)更改为看起来像傻瓜。也许这是未签名的int之类的东西?

这是原始内容: “ 4小时满月”

它变为: “ 4小时完整满月”?

我应该说文件中的其他引号没有变化...但是有一些引号(我知道单引号也有类似的问题)。

2 个答案:

答案 0 :(得分:2)

通过PrintWriter构造函数显式更改编码,默认情况下Java可能使用UTF-8

PrintWriter pw = new PrintWriter("filename", "ISO-8859-1");

答案 1 :(得分:0)

您必须进行更改

PrintWriter out = new PrintWriter(filename);

PrintWriter out = new PrintWriter(filename, "ISO-8859-1");

因为默认情况下,printwriter将不会使用ISO-8859-1编码。