0
private static void displaytoFile(int trial, int count) {
        // TODO Auto-generated method stub
        String answer;
         try{
              // Create file 
                  FileWriter fstream = new FileWriter(outputfile);
                  BufferedWriter out = new BufferedWriter(fstream);
                  answer = "Case #"+trial+": "+count;
                  out.write(answer);
                  out.newLine();
              //Close the output stream
                out.close();
              }catch (Exception e){//Catch exception if any
                  System.err.println("Error: " + e.getMessage());
              }


    }

displaytoFile() メソッドはプロジェクトのループで呼び出されますが、ファイルに行ごとに書き込むことができません。最後の行、つまり最後の反復中に渡されたパラメーターのみを書き込みます。コンソールと他のコードでテストしました大丈夫です。すべて表示されますが、このコード スニペットは以前の値を上書きしているように見えるため、問題があるようです。ファイルに 1 行ずつ書き込むにはどうすればよいですか?

4

3 に答える 3

1

FileWriter(String, boolean)ファイル全体を書き換えるのではなく、入力を追加するには、コンストラクターを使用します。

FileWriter fstream = new FileWriter(outputfile, true);
于 2013-04-13T19:09:10.440 に答える
0
 FileWriter fstream = new FileWriter(outputfile);
 BufferedWriter out = new BufferedWriter(fstream);

 answer = "Case #"+trial+": "+count;
 out.write(answer);
 out.newLine();

 //Close the output stream
 out.close();

問題があります。これは、ループの各反復内で、ファイルをクリアしてから現在の行を書き込むためです。ループの前にファイルを開き、ループの後に閉じる必要があります。または、今行ったように、最初にクリアしてから書き込むのではなく、ファイルに追加していることを確認してください。

于 2013-04-13T19:09:31.367 に答える
0

ファイルに追加することを示す必要があります

メソッドのドキュメントはこちら

于 2013-04-13T19:09:37.050 に答える