2016-04-25 73 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(); 
     } 
    } 
} 

我的文件確實是大〜700MB,我很想能夠打印進度指示器或而不是在控制檯上打印真正不太好的實際文件。可能是這樣的東西:

========================================================== 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 = new BufferedReader(new FileReader(path));

  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

謝謝......我會試試看 –

相關問題