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

时间:2015-12-29 08:28:42

标签: java eclipse filewriter bufferedwriter

我尝试将一些整数写入文本文件,每行只输入一个值,所以我使用了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这样的值,但我在文本文件中看到以下几行。

Ǵ
ಀ
ಀ
ಀ

为什么?

3 个答案:

答案 0 :(得分:2)

另一种方法是:

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

答案 1 :(得分:1)

带有整数的

write(int c)期待一个字符。 考虑使用write(String s,int off,int len)或一些包装器,如PrintWriter

答案 2 :(得分:1)

write(...)的{​​{1}}方法已超载。

例如:有方法BufferedWriter将给定的String写入文件,并且void write(String arg)将给定的Integer转换为字符,然后将字符写入文件。

要解决你的问题,你必须改变

void write(int arg)

writer.write(board.Player1.position);