2013-02-06 109 views
-1

我正在使用BufferedReader類通過逐行讀取來在大文件中搜索事件。讀取文件,獲取當前位置並向後讀取

如何找到發生時的當前位置? 然後,我該如何讀取從該位置開始的文件?

我真的在網上搜索一致的解決方案,但沒有找到。

+0

你到目前爲止嘗試過什麼?你可以添加一些代碼嗎?檢查這個[metaSO問題](http://meta.stackexchange.com/questions/18584/how-to-ask-a-smart-question)和[Jon Skeet:Coding Blog](http://msmvps.com/ blogs/jon_skeet/archive/2010/08/29/writing-the-perfect-question.aspx)如何撰寫和提出一個好問題。 – Yaroslav

+0

@Yaroslav:我認爲這個問題很明顯:我不知道如何向後讀取文件。 – Pierre

+0

SO不是一個代碼編寫服務,而這正是你正在尋找的。我指出了一個鏈接,我現在重複[如何提出一個聰明的問題](http://meta.stackexchange.com/a/25128/192104)。是一個編碼問題,所以有人猜測你已經嘗試了一些東西,如果它是錯誤的並不重要,至少它顯示了一些努力,而不是「我爲代碼搜索了很多東西」。你是程序員,你應該解決一個問題。是的,在這裏你可以搜索幫助,但不是完整的解決方案。 – Yaroslav

回答

1
public static void main(String[] args) throws Exception { 
    FileReader fr = new FileReader("sample.txt"); 
    BufferedReader reader = new BufferedReader(fr); 
    String line = ""; 

    ArrayList<String> linee = new ArrayList<String>(); 

    while ((line = reader.readLine()) != null) { 
     if (line.equals("bb")) 
      break; 
     linee.add(line); 

    } 

    reader.close(); 
    for (int i = linee.size() - 1; i >= 0; i--) 
     System.out.println(linee.get(i)); 

} 
+0

感謝您的回答。你認爲這個解決方案不會有性能問題,因爲我正在處理2Gb文件? – Pierre

+0

@Pierre不確定。 –

+1

再次,你有一個有用的答案,是由你來測試它,看看它是否回答你的問題。如果沒有,然後嘗試基於這個新的代碼。如果你在多次嘗試後仍然陷入困境,那麼請打開一個新問題,添加你的代碼,解釋你所嘗試的內容,然後確定你會得到更多答案。 – Yaroslav