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.valueOfInteger.toStringscore转换为String

 writer.write(String.valueOf(score)); 

BufferedWriter试图将一系列字节写入文件,而不是数字。 一个数字仍然是一个字符。

请考虑使用FileWriter ,并使用以下内容: fileWriter.write(Integer.toString(score)) Write在此处使用字符串,但输出应该相同。