BufferedWriter表现得很奇怪
我正在尝试使用工作高分机制制作游戏,我正在使用java.io.BufferedWriter写入高分文件。 我在高分上没有加密,我使用Slick2D和LWJGL进行渲染和用户输入。 该程序执行此代码:
FileWriter fstream = new FileWriter("res/gabjaphou.txt"); BufferedWriter writer = new BufferedWriter(fstream); writer.write(score); // score is an int value writer.close(); // gotta save m'resources! lol
我打开由此生成的文本文件,所有读取的都是问号。 我不知道为什么会发生这种情况,我使用了我正在制作的另一个项目中的其他代码,我对此没有任何问题……有谁知道为什么? 这真烦人! :C
BufferedWriter.write(int)用于编写单个charecter,而不是整数。
public void write(int c)
throws IOException
写一个字符。
覆盖 :在类Writer中写入
参数:c
– 指定要写入的字符的int
抛出:IOException
– 如果发生I / O错误
尝试
writer.write(String.valueOf(score));
请使用writer.write(String.valueOf(score));
否则它会将score
写为角色 。 查看文档:
写一个字符。 要写入的字符包含在给定整数值的16个低位中; 忽略16个高位。
你想要使用的是Writer.write(String)
; 使用String.valueOf
或Integer.toString
将score
转换为String
。
writer.write(String.valueOf(score));
BufferedWriter
试图将一系列字节写入文件,而不是数字。 一个数字仍然是一个字符。
请考虑使用FileWriter
,并使用以下内容: fileWriter.write(Integer.toString(score))
Write在此处使用字符串,但输出应该相同。