使用Java读取文件的最后n个字节

时间:2013-03-09 23:18:22

标签: java windows file-processing

我有一个抓取程序,可以记录一些文件。有时在服务器上,会发生一些错误,爬虫会创建大量的日志文件,这些文件在某种程度上无法解析。出于这个原因,我想创建一个简单的程序,它在日志文件的末尾读取大约1000个字符并向我显示消息(即使爬虫仍在写入该文件)。这将帮助我在不关闭爬虫的情况下解决问题。

3 个答案:

答案 0 :(得分:11)

使用RandomAccessFileseek,然后read你的字节数。

File file = new File("DemoRandomAccessFile.out");
RandomAccessFile raf = new RandomAccessFile(file, "r");

// Seek to the end of file
raf.seek(file.length() - n);
// Read it out.
raf.read(yourbyteArray, 0, n);

答案 1 :(得分:3)

计算机上已有一个方便的命令行工具。 tail -c 1000会做你要求的。打印出最后10行的tail -n 10可能更有用。

答案 2 :(得分:2)

检查文件长度,比如说1Mb

使用RandomAccessFile

打开以供阅读

寻求定位到1024 * 1024-1000

读取1000个字节

upvote:)