Java FileWriter将整数写入为非法字符

Java FileWriter将整数写入为非法字符,java,filewriter,illegal-characters,Java,Filewriter,Illegal Characters,我现在正在写一个算法,谁在写另一个算法。 为此,我使用FileWriter类,在我尝试在文件中写入整数之前,它工作得很好 fileWriter.write(1)打印```(编辑:此处看不到字符),intelliJ将其解释为:非法字符U+0001(每个数字都有不同的非法字符名称) 当我在做fileWriter时,写(“1”)这个工作很好 问题是来自Intellij还是我必须将每个整数转换为字符串?基本上Writer.write(int)并没有达到您期望的效果。报告说: 只写一个字符。要写入的字符包

我现在正在写一个算法,谁在写另一个算法。 为此,我使用FileWriter类,在我尝试在文件中写入整数之前,它工作得很好

fileWriter.write(1)打印```(编辑:此处看不到字符),intelliJ将其解释为:
非法字符U+0001
(每个数字都有不同的非法字符名称)

当我在做
fileWriter时,写(“1”)
这个工作很好


问题是来自Intellij还是我必须将每个整数转换为字符串?

基本上
Writer.write(int)
并没有达到您期望的效果。报告说:

只写一个字符。要写入的字符包含在给定整数值的16个低阶位中;16个高阶位被忽略

正如IntelliJ所说,你写的是U+0001

它不是世界上最伟大的API(最好接受单个字符的
char
),但它的性能与设计相符


基本上,是的,您需要将所有内容转换为文本。

基本上
Writer.write(int)
并没有达到您期望的效果。报告说:

只写一个字符。要写入的字符包含在给定整数值的16个低阶位中;16个高阶位被忽略

正如IntelliJ所说,你写的是U+0001

它不是世界上最伟大的API(最好接受单个字符的
char
),但它的性能与设计相符

基本上,是的,您需要将所有内容转换为文本。

OutputStreamWriter.write(int)
继承的
FileWriter.write(int)
方法将单个字符写入文件。输入
int
是字符的ASCII或Unicode表示形式。例如,write
fileWriter.write(65)
写入字母
A
,因为
A
的ASCII值是65。这也可以写成
fileWriter.write('A')
,因为字符
A
在内存中表示为数字
65
。如果要将整数写入文件,则需要调用
fileWriter.write(integer.toString(i))
,其中
i
是要写入的值。或者,如果
i
是一个单位数正数,您可以编写
fileWriter.write('0'+i)
,因为向这样的数字添加
'0'
会将其转换为相应的字符。

fileWriter.write(int)
方法继承自
OutputStreamWriter.write(int)
,将单个字符写入文件。输入
int
是字符的ASCII或Unicode表示形式。例如,write
fileWriter.write(65)
写入字母
A
,因为
A
的ASCII值是65。这也可以写成
fileWriter.write('A')
,因为字符
A
在内存中表示为数字
65
。如果要将整数写入文件,则需要调用
fileWriter.write(integer.toString(i))
,其中
i
是要写入的值。或者,如果
i
是一个单位数正数,您可以编写
fileWriter.write('0'+i)
,因为向这样的数字添加
'0'
会将其转换为相应的字符