2012-10-09 77 views
1

可能重複:
Java: Quickly read the last line of a text file?如何讀取1GB的文件的最後一行 - java的

我們的大型機系統發送具有標題,詳細記錄和尾部的文件。 我想只有當

  1. 的文件是有效的文件,以在這些細節上的記錄持續到我的數據庫 - 這意味着一個具有有效的頭,詳細記錄和拖車。
  2. 詳細記錄數的數量等於拖車記錄中的計數。

我的目標是先讀取最後一行,而不讀取整個1GB文件。

AAGSDBGBBM337 2012-03-16165620000001 - Header format 
Detailed Record 1 
Detailed Record 2 
Detailed Record 3 
ZZGSDBGBBM337 2012-03-161656200000010000003 - Trailer format 

有什麼建議嗎?

+1

也許這會滿足您的需求:http://www.brilliantsheep.com/reading-the-last-line-of-a-file-in-java-through-random-access/ –

+0

閱讀上一個KB,行不應長於。然後按'\ n'分割並取最後一項。 –

+0

讀取最後一個Nkb(假設行不能大於2kb),並從末尾找到第一個'\ n' – octo

回答

1

你看過Apache Commons IOTailer類嗎?

編輯:看看source,它似乎只識別附加到文件的新行,而不是讓您讀取現有文件的最後一行(比如說)。因此,它不適合。然而,將其修改爲在執行初始化時向後看是微不足道的seek()

1

您可以使用FileInputStreamskip方法跳過文件的前n個字節。您也可以使用RandomAccessFile具有相同的目的。

0

請找到沃納Vesterås這解決了我的問題

每個人的建議做了有意義和感謝張貼在第一條評論的鏈接。

相關問題