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'正在打印.我的数组正在被正确读取(因为输出到控制台是正确的).
出了什么问题?
我怀疑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)