2012-01-26 95 views
0

我正在使用java掃描器類來掃描日誌文件並搜索異常,然後一旦發現異常,我想在它之前打印20行,之後打印20行。 有沒有一個選項可以返回20行,一旦我發現我的異常 這樣的代碼。Java文件掃描器將光標向後移動

Scanner in = null; 
     try { 
      in = new Scanner(new FileReader(f)); 
      while(in.hasNextLine() && !result) { 
       result = in.nextLine().indexOf(searchString) >= 0; 
       if (result) 
       { 
        //return 20 lines 
       } 
      } 
     } 

在此先感謝。

回答

4

在讀取它們時緩衝行。當您發現錯誤時,請閱讀下一個20並緩存這些錯誤。然後返回緩衝區。

+0

如果下20行包含行作者嘗試匹配該怎麼辦?在這種情況下,算法需要比這更復雜。 – bezmax

+0

我以爲他只對第一次發生感興趣。我只能處理問題中的問題:) –