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

BufferedWriterts[i].getMoney()int低レベルのテキスト インターフェイスであるため、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() 、OK でない場合は使用Integer.toString(ts[i])

于 2012-10-16T08:18:04.237 に答える