我正在尝试使用工作高分机制制作游戏,我正在使用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
答案 0 :(得分:4)
BufferedWriter.write(int)用于编写单个字符,而不是整数。
public void write(int c)
throws IOException
写一个字符。
覆盖:写在类Writer中 参数:
c
-int
指定要写入的字符
抛出:IOException
- 如果发生I / O错误
尝试
writer.write(String.valueOf(score));
答案 1 :(得分:3)
请使用writer.write(String.valueOf(score));
,否则writes score
as a character。
请参阅文档:
写一个字符。要写入的字符包含在给定整数值的16个低位中; 16位高位被忽略。
您想要使用的是Writer.write(String)
;使用score
或String
将String.valueOf
转换为Integer.toString
。
writer.write(String.valueOf(score));
答案 2 :(得分:0)
BufferedWriter
正在尝试将一系列字节写入文件,而不是数字。一个数字仍然是一个角色。
请考虑使用FileWriter
,并使用以下内容:
fileWriter.write(Integer.toString(score))
Write在这里使用一个字符串,但输出应该是相同的。