无法在文件中获取特定输出

use*_*125 2 java file-io

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();
Run Code Online (Sandbox Code Playgroud)

这是我的代码.在我的控制台中我得到了

20000
10000
10000
4000
Run Code Online (Sandbox Code Playgroud)

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

TESTING?
TESTING?
TESTING?
TESTING?
Run Code Online (Sandbox Code Playgroud)

(测试用于调试目的)

我无法弄清楚如何调试它.我的文件被正确写入(因为'TESTING'正在打印.我的数组正在被正确读取(因为输出到控制台是正确的).

出了什么问题?

Pet*_*rey 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();
Run Code Online (Sandbox Code Playgroud)