2

私は上記のコードを持っています。私がやりたいのは、txtファイルに文字列を書き込むことです。

     import java.io.*;
    import java.util.*;

    public void writeAsfalizomenos(asfalizomenos myObj) throws IOException {

    Scanner scanner = new Scanner(System.in);
    System.out.print("Surname: ");
    String username = scanner.nextLine();
    System.out.println(username);


    FileWriter outFile = new FileWriter("asdf.txt", true);
    PrintWriter out1 = new PrintWriter(outFile);

    out1.append(username);
    out1.println();
    out1.append("adfdas");



    //
    // Read string input for username
    //



}

public static void main(String [] args) throws IOException{


    asfalizomenos a = new asfalizomenos();
    a.writeAsfalizomenos(a);
}

上記のコードはtxtファイルを作成しますが、文字列を書き込みません。私のバグについて何か考えはありますか?

4

2 に答える 2

6

PrinterWriterまたはを閉じたりフラッシュしたりしていませんFileWriter。つまり、基本的にはバッファリングされているので、ファイルには何も書き込まれていません。

最後に両方をブロックで閉じる必要があります。

FileWriter outFile = new FileWriter("asdf.txt", true);
try {
    PrintWriter out1 = new PrintWriter(outFile);
    try {
        out1.append(username);
        out1.println();
        out1.append("adfdas");
    } finally {
       out1.close();
    }
} finally {
   outFile.close();
}

クロージングは​​自動的にフラッシュされます。

(私は思い出せません-を閉じるPrintWriterと閉じる可能性がありFileWriterます。個人的には、とにかくそれについて明示するのが好きです。)

于 2011-08-10T22:14:44.547 に答える
1

PrintWriter書き込みが終わったら、を閉じます。

out1.close();
于 2011-08-10T22:15:02.387 に答える