2016-05-10 13 views
-1

"ab.txt"というファイルを読み込み、その内容を "Output.txt" K回目に保存しようとしていますので、入力ファイルの内容をK回出力するとしますファイルが、それはコンソールK番目の時間に印刷されているのに対し、私は一度だけ取得しています。あなたはJavadocの中に見ることができるよう出力が伸びていない

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

    class PrintStreamTest1 
    { 
     public static void main(String... l)throws IOException 
     { 
     int k=0; 
     long avgTime=0; 

     while(k<100) 
     { 
      long startTime=System.nanoTime(); 
      String s; 
      Scanner fin=new Scanner(new BufferedInputStream(new FileInputStream("ab.txt"))); 
      PrintStream output=new PrintStream("Output.txt"); 
      while(fin.hasNextLine()) 
      { 
      s=fin.nextLine(); 
      System.out.println(s); 
      output.print(s+"\n"); 
      } 

      avgTime=avgTime+((System.nanoTime()-startTime)/10000000); 
      fin.close(); 
      output.close(); 
      k++; 
     } 

     System.out.println("\n "+ avgTime+"ms"); 
     }  

    } 

答えて

1

あなたは間違ってコンストラクタを使用している:

のPrintStream(文字列filename)
...
fileNameにファイルの名前にこの印刷ストリームの宛先として使用します。 ファイルが存在する場合は、ゼロサイズに切り捨てられます。そうしないと、新しいファイルが作成されます。出力はファイルに書き込まれ、バッファされます。

あなたはあなたのループの各反復で上書きし、そのファイルの内容たくない場合は、追加モードでPrintStreamに関連付けられたファイルを開く必要があります。

PrintStream output = new PrintStream(new FileOutputStream("Output.txt",true)); 

代わりに、単にファイルを開きますループの前に1回、ループの後に1回閉じます。

+0

出力ストリーム 'PrintStream output = new PrintStream(" Output.txt ");'入力ストリームでなければなりません – Sanjeev

+0

@Sanjeevあなたは正しいです。私は入力ファイルに混乱しました。それを修正します。ありがとう – Eran

+0

いいえ問題..それは起こる:) – Sanjeev

関連する問題