0

私はJavaを初めて使用し、この部分で立ち往生しています:

JAVAを使用してコンソール出力をテキストファイルに出力しようとしています。しかし、問題は、Whileループが実行されていて、コードが出力をファイルに書き込みますが、前のループを削除することです。whileループの出力をファイルに追加したいと思います。

どんな助けでも大歓迎です。前もって感謝します :)

PrintStream out = new PrintStream(new FileOutputStream( "output.txt"));

System.setOut(out);

4

3 に答える 3

3

appendファイル内の以前のデータに新しいデータが必要な場合は、これを試してください...

try{
    File f = new File("d:\\t.txt");
    FileWriter fw = new FileWriter(f,true);    // true is for append
    BufferedWriter bw = new BufferedWriter(fw);

    bw.append(Your_data);
  }catch(Exception ex){

       ex.printStackTrace();

  }
于 2012-08-13T11:21:39.053 に答える
2

リダイレクトは、他の操作を行う前に1 回実行する必要があります。つまり、ループに入る前です。

シェルはファイルにリダイレクトできることに注意してくださいSystem.out。それは実現可能ですが、将来コードをデバッグし、出力がどこに行くのか疑問に思う人にとっては、おそらく予期しないことです...

それともロギング フレームワークを検討しますか?

于 2012-08-13T11:23:40.570 に答える
-1

次のようにします。

  FileOutputStream fout=new FileOutputStream("output.txt",true);
  while(condition)
   {
      PrintStream out = new PrintStream(new FileOutputStream("output.txt"));

       System.setOut(out);

   }

FileOutputStream の 2 番目の引数は、追加可能モードで開きます。

于 2012-08-13T11:25:37.230 に答える