使用 BufferedWriter 将文件写入文本(写了一些奇怪的东西)Java

Writing a file to text with BufferedWriter(Writes something strange)Java

我尝试将一些整数写入文本文件,每行只输入一个值,所以我使用了 BufferedWriter。

try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
                          new FileOutputStream("filename.txt"), "utf-8"))) {
    writer.write(board.Player1.money);             
    writer.newLine();
    //Continues to do this for 4 players.
    writer.newLine();
    writer.write(board.Player1.position);
    writer.newLine();
    //Continues to do this for 4 players.
}

我希望看到的是文本文件中的整数。 board.Player1.money 之类的值是正确的,因为它们适用于代码的其他部分。所以我希望看到像 300 这样的值,但我在文本文件中看到以下行。

Ǵ
ಀ
ಀ
ಀ

这是为什么?

write(int c) with integer 需要一个字符。 考虑使用 write(String s, int off, int len),或者像 PrintWriter

这样的包装器

BufferedWriterwrite(...) 方法被重载。

例如:方法void write(String arg)将给定的字符串写入文件,还有void write(int arg)将给定的整数转换为字符,然后将字符写入文件。

要解决您的问题,您必须更改

writer.write(board.Player1.position);

writer.write(Integer.toString(board.Player1.position));

另一种方法是:

writer.write(board.Player1.money+"");