如何阅读1GB文件的最后一行 - java

时间:2012-10-09 14:20:38

标签: java java-ee networking

  

可能重复:
  Java: Quickly read the last line of a text file?

我们的大型机系统正在发送一个包含标题,详细记录和预告片的文件。 我希望仅在

时将这些详细信息记录保存到我的数据库中
  1. 该文件是一个有效的文件 - 意味着该文件具有有效的标题,详细记录和预告片。
  2. 详细记录数量等于预告片记录中的数量。
  3. 我的目标是在不读取整个1GB文件的情况下首先读取最后一行。

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

    有什么建议吗?

3 个答案:

答案 0 :(得分:1)

您是否查看过Apache Commons IO Tailer课程?

编辑:查看source,它似乎只识别附加到文件的新行,而不是让您读取现有文件的最后一行(比如说)。因此,它不适合。然而,修改它在执行初始seek()

时向后看它将是微不足道的

答案 1 :(得分:1)

您可以使用FileInputStream的{​​{3}}方法跳过文件的前n个字节。您也可以将RandomAccessFile用于相同目的。

答案 2 :(得分:0)

请在WernerVesterås的第一条评论中找到解决我问题的链接

其他人的建议确实有意义并且感谢发布。