FileWriter 将整数写为非法字符
FileWritter write integers as illegal characters
我目前正在编写一个算法,而这个算法正在编写另一个算法。
为此,我正在使用 FileWritter class,在我尝试在文件中写入整数之前,它工作正常。
fileWriter.write(1);
打印 ``(编辑:您看不到此处的字符)intelliJ 解释为:Illegal Character U+0001
(每个数字都有不同的非法字符名称)
当我做 fileWriter.write("1")
这个工作很好。
问题是出自 Intellij 还是我必须将每个整数都转换为字符串?
基本上 Writer.write(int)
并没有达到您的预期。 documentation 表示:
Writes a single character. The character to be written is contained in the 16 low-order bits of the given integer value; the 16 high-order bits are ignored.
所以你写的是 U+0001,正如 IntelliJ 所说的那样。
它不是世界上最伟大的 API(最好接受 char
作为单个字符)但它 是 的设计.
基本上,是的,您需要将所有内容都转换为文本。
继承自OutputStreamWriter.write(int)
的FileWriter.write(int)
方法,将单个字符写入文件。输入 int
是字符的 ASCII 或 Unicode 表示。例如,写 fileWriter.write(65)
写字母 A
,因为 A
的 ASCII 值是 65。这也可以写成 fileWriter.write('A')
,因为字符 A
在内存中表示为数字 65
。如果要将整数写入文件,则需要调用 fileWriter.write(Integer.toString(i))
,其中 i
是您要写入的值。或者,如果i
是一位正数,你可以写成fileWriter.write('0' + i)
,这样的数字加上'0'
就可以把它转换成它对应的字符。
我目前正在编写一个算法,而这个算法正在编写另一个算法。 为此,我正在使用 FileWritter class,在我尝试在文件中写入整数之前,它工作正常。
fileWriter.write(1);
打印 ``(编辑:您看不到此处的字符)intelliJ 解释为:Illegal Character U+0001
(每个数字都有不同的非法字符名称)
当我做 fileWriter.write("1")
这个工作很好。
问题是出自 Intellij 还是我必须将每个整数都转换为字符串?
基本上 Writer.write(int)
并没有达到您的预期。 documentation 表示:
Writes a single character. The character to be written is contained in the 16 low-order bits of the given integer value; the 16 high-order bits are ignored.
所以你写的是 U+0001,正如 IntelliJ 所说的那样。
它不是世界上最伟大的 API(最好接受 char
作为单个字符)但它 是 的设计.
基本上,是的,您需要将所有内容都转换为文本。
继承自OutputStreamWriter.write(int)
的FileWriter.write(int)
方法,将单个字符写入文件。输入 int
是字符的 ASCII 或 Unicode 表示。例如,写 fileWriter.write(65)
写字母 A
,因为 A
的 ASCII 值是 65。这也可以写成 fileWriter.write('A')
,因为字符 A
在内存中表示为数字 65
。如果要将整数写入文件,则需要调用 fileWriter.write(Integer.toString(i))
,其中 i
是您要写入的值。或者,如果i
是一位正数,你可以写成fileWriter.write('0' + i)
,这样的数字加上'0'
就可以把它转换成它对应的字符。