2014-04-04 60 views
0

我正在使用以下代碼從文件中讀取數據,但我無法找到該行的索引?如何找到該行的索引?

public static ArrayList<String> searchInFile(String word) { 


    ArrayList<String> result = new ArrayList<String>(); 
    FileReader fileReader = null; 
    try { 
     fileReader = new FileReader(new File("input.txt")); 
    } catch (FileNotFoundException e1) { 
     System.err.println("File input.txt not found!"); 
     e1.printStackTrace(); 
    } 

    BufferedReader br = new BufferedReader(file); 
    String line; 
    try { 
     while ((line = br.readLine()) != null) { 
      if (line.contains(word)) { 
       result.Add(line); 
      } 
     } 

    } catch (IOException e) { 
     System.err.println("Error when processing the file!"); 
     e.printStackTrace(); 
    } finally { 
     if (br != null) { 
      try { 
       br.close(); 
      } catch (IOException e) { 
       System.err.println("Unexpected error"); 
       e.printStackTrace(); 
      } 
     } 

    } 
    return result; 
} 

所以我如何找到該行的索引?

回答

2

您將需要創建一個計數器整數變量,可以跟蹤你的線索引。

int ctr =0; 
    while ((line = br.readLine()) != null) { 
     if (line.contains(word)) { 
      result.Add(line); 
     } 
     ctr++; 
    } 

希望它有幫助!

+0

是它幫助我,但我想找到另一個puropose行的索引我可以找到該行的索引? – user3271822

+0

我相信你不能用BufferedReader來做我。當你閱讀一個文件時,要開始沒有辦法知道有多少行(除非你使用計數器自己計算),這就是爲什麼while循環被使用時,它將循環直到文件結束。我不確定,但可能有一個框架可能會讓你達到你所需要的,而不是使用BufferedReader。 – lorraine