2016-04-25 10 views
0

私持っているインクルードテキストファイルを読み込み、次の方法:どのように出力進行状況インジケータ

public static void readFile(String path) { 

    BufferedReader br = null; 
    try { 
     String sCurrentLine; 

     br = new BufferedReader(new FileReader(path)); 

     while ((sCurrentLine = br.readLine()) != null) { 
      System.out.println(sCurrentLine); // Progress indicator! 
     } 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     try { 
      if (br != null)br.close(); 
     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } 
    } 
} 

マイファイルである〜700メガバイト、私は進行状況インジケータを印刷することができるのが大好きだ、本当に大きなまたはコンソール上の実際のファイルを印刷するのではなく、本当にうまく見えません。おそらくこのようなもの:

========================================================== 100% 

いずれのヒントもありがとうございます。

+0

おそらくhttp://stackoverflow.com/questions/23167319/how-to-use-java-progress-bar-while-read-a-text-fileが役立つでしょうか? – GuiSim

答えて

2

System.out.printlnを変更する必要があります。しかし、そのためには、いくつかのことが必要です。

  1. Fileオブジェクト即ち

    ファイルf =新しいファイル(パス)を使用してファイルサイズを取得します。 double fileSize = f.length(); br =新しいBufferedReader(新しいFileReader(パス));

  2. ループの内側には、whileループがあります。あなたはこの

    int型percentRead = 0

    しばらく((sCurrentLine = br.readLine())!= null)のような何かをしなければならない文字列を読んで毎回{

    double bytesRead += (sCurrentLine.getBytes().length); 
    
    int newPercentRead = (int)((bytesRead/fileSize) * 100); 
    
    while (percentRead <= newPercentRead){ 
    
        System.out.print("#"); 
    
        percentRead++; 
    
    } 
    

    }

これはテストされていないので、の周りを調整する必要があります。

+0

ありがとう...私はそれを試してみる –

関連する問題