2
File outputFile2 = new File("money2.txt");
    BufferedWriter outData2 = new BufferedWriter(new FileWriter(outputFile2));
    for(int i = 0 ; i < 4 ; i++)
    {
        System.out.println(ts[i].getMoney());
        outData2.write("TESTING");
        outData2.write(ts[i].getMoney());
        outData2.newLine();
    }
    outData2.close();

这是我的代码。在我的控制台中,我得到

20000
10000
10000
4000

这正是我想要的文件。但相反,我得到了这个money2.txt

TESTING?
TESTING?
TESTING?
TESTING?

(测试是为了调试目的)

我不知道如何调试它。我的文件被正确写入(因为正在打印“TESTING”。我的数组正在被正确读取(因为到控制台的输出是正确的。

出了什么问题?

4

2 回答 2

5

我怀疑ts[i].getMoney()是一个int,因为 BufferedWriter 是一个低级文本接口,它假设您正在编写一个 codePoint 字符,即对于您正在使用的字符编码(char) 20000(char) 10000它看起来是未知的。?

使用 PrintWriter 尝试以下操作

File outputFile2 = new File("money2.txt");
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(outputFile2)));
for (int i = 0; i < 4; i++) {
    System.out.println(ts[i].getMoney());
    out.println("TESTING " + ts[i].getMoney());
}
out.close();
于 2012-10-16T08:16:32.067 回答
0

.toString()之后添加ts[i].getMoney() ,如果不行,请使用Integer.toString(ts[i])

于 2012-10-16T08:18:04.237 回答