使用 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
这样的包装器
BufferedWriter
的 write(...)
方法被重载。
例如:方法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+"");
我尝试将一些整数写入文本文件,每行只输入一个值,所以我使用了 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
这样的包装器BufferedWriter
的 write(...)
方法被重载。
例如:方法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+"");