【发布时间】:2011-10-03 21:32:57
【问题描述】:
我正在使用 Mac (Snow Leopard)。使用 Java,我清除文件内容,然后写入它。 这是清除文件的代码:
new File(FileName).delete();
new File(FileName).createNewFile();
之后,当我写入文件时,我发现奇怪的字符;例如: 而不是写:
预期为“=”、“,”、“;”、“asm”
它写道:
预期 ,Äò=,Äô, ‚Äò,‚Äô, ‚Äò;‚Äô, ‚Äòasm,Äô
我确定 createNewFile() 会导致问题,因为当我将相同的文本写入手动创建的文件时不会出现问题。我能做什么?
谢谢。
【问题讨论】:
-
你用什么来写入文件?您是否使用包装在 BufferedWriter 中的 OutputStreamWriter,并指定 OutputStreamWriter 的字符集?
-
您不需要删除文件并重新创建它来替换其内容。只需写入文件即可。我也怀疑是编码问题。
-
其实是gcc命令通过终端使用这个命令写的: $(foreach f, $(CFILES) , gcc $f 2>> errors.txt;)
-
我正在将gcc编译的错误写入文本文件
-
正如@JBNizet 提到的,我不需要删除并重新创建文件。所以我只是将空字符串写入文件以清除它。
BufferedWriter Writer = new BufferedWriter(new FileWriter(ErrorFileName)); Writer.write(""); Writer.close();
标签: java file-io osx-snow-leopard