写入文件时的奇怪字符(Mac)(Java)
我正在研究Mac(雪豹)。使用Java,我清除文件内容,然后写入。 这是清除文件的代码:写入文件时的奇怪字符(Mac)(Java),java,file-io,osx-snow-leopard,Java,File Io,Osx Snow Leopard,我正在研究Mac(雪豹)。使用Java,我清除文件内容,然后写入。 这是清除文件的代码: new File(FileName).delete(); new File(FileName).createNewFile(); 之后,当我写文件时,我发现奇怪的字符;例如: 而不是写: 应为“=”、“、”、“;”、”asm' 它写道: 预期的ÄÄòasmÄ 我确信createNewFile()会导致问题,因为当我将相同的文本写入手动创建的文件时,不会出现问题。我能做什么 谢谢。您在某处引入了
new File(FileName).delete();
new File(FileName).createNewFile();
之后,当我写文件时,我发现奇怪的字符;例如:
而不是写:
应为“=”、“、”、“;”、”asm'
它写道:
预期的ÄÄòasmÄ
我确信createNewFile()会导致问题,因为当我将相同的文本写入手动创建的文件时,不会出现问题。我能做什么
谢谢。您在某处引入了代码转换错误 在Java中,您将数据编码为UTF-8,但无论您使用什么方法对其进行解码,都会将数据视为(可能是)MacRoman 或者,Java编辑器将文件保存为UTF-8,编译器在编译之前将其解码为MacRoman
读取。您使用什么写入文件?是否使用BufferedWriter中包装的OutputStreamWriter并指定OutputStreamWriter的字符集?不需要删除文件并重新创建以替换其内容。只需写入文件。我还怀疑存在编码问题。实际上,它是由gcc命令通过终端使用以下命令编写的:$(foreach f,$(CFILES),gcc$f 2>>errors.txt;)我正在将gcc编译错误写入文本文件,正如@JBNizet所述,我不需要删除并重新创建该文件。所以我只需将空字符串写入文件以清除它<代码>BufferedWriter Writer=新的BufferedWriter(新的FileWriter(ErrorFileName));作者:写(“”);Writer.close()代码>