java读取文件的最后几行,Java:读取HUGE文件的最后n行

本文介绍了多种在Java中读取大文件最后几行的方法,包括使用RandomAccessFile、Apache Commons-io的ReversedLinesFileReader以及利用操作系统命令tail。文章详细解释了不同方法的实现原理和适用场景,并提供了相关代码示例。
摘要由CSDN通过智能技术生成

如果你使用的是RandomAccessFile ,你可以使用length和seek来到达文件末尾的特定点,然后从那里读取。

如果发现没有足够的线条,请从这一点开始备份并重试。 一旦你知道了第N行的起始位置,你就可以到那里去阅读和打印。

根据您的数据属性可以进行最初的猜测。 例如,如果是文本文件,则行长度可能不会超过平均值132,因此,要获取最后五行,请在结束之前启动660个字符。 那么,如果你错了,就试试1320(甚至可以使用你从最后660个字符中学到的东西来调整 – 例如:如果这660个字符只是三行,下一个尝试可能是660/3 * 5,加上也许多一点,以防万一)。

我发现这是通过使用Apache Commons-io api中的ReversedLinesFileReader来完成的最简单的方法。 这个方法会给你从文件的底部到顶部的行,你可以指定n_lines值来指定行数。

import org.apache.commons.io.input.ReversedLinesFileReader; File file = new File("D:\\file_name.xml"); int n_lines = 10; int counter = 0; ReversedLinesFileReader object = new ReversedLinesFileReader(file); while(!object.readLine().isEmpty() && counter < n_lines) { System.out.println(object.readLine()); counter++; }

RandomAccessFile是一个很好的开始,正如其他答案所描述的。 有一个重要的警告&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值