繁体   English   中英

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

[英]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的值,但在文本文件中看到以下几行。

Ǵ
ಀ
ಀ
ಀ

这是为什么?

另一种方法是:

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

用整数write(int c)需要一个字符。 考虑使用write(String s,int off,int len)或某些包装器,例如PrintWriter

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

例如:有一个方法void write(String arg)将给定的String写入文件,而有一个void write(int arg)将给定的Integer转换为字符,然后将该字符写入文件。

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

writer.write(board.Player1.position);

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM