Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
写入文件时的奇怪字符(Mac)(Java)_Java_File Io_Osx Snow Leopard - Fatal编程技术网

写入文件时的奇怪字符(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()会导致问题,因为当我将相同的文本写入手动创建的文件时,不会出现问题。我能做什么 谢谢。您在某处引入了

我正在研究Mac(雪豹)。使用Java,我清除文件内容,然后写入。 这是清除文件的代码:

   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()