我有一个爬虫程序记录一些文件。有时,服务器发生错误,爬虫会创建大量日志文件,这些文件很难解析。因此,我想创建一个简单的程序,读取日志文件末尾的约1000个字符,并将消息显示给我(即使爬虫正在继续写入该文件)。这将帮助我在不关闭爬虫的情况下解决问题。
使用RandomAccessFile进行寻址,然后通过读取来获取字节。
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);
raf.readFully(yourbyteArray)
确保读取了构成正在读入的缓冲区长度的所有字节。 - Guus在您的计算机上已经有一个方便的命令行工具。 tail -c 1000
可以完成您所请求的操作。将打印出最后10行的tail -n 10
可能更加有用。
tail /your/file
查看文件末尾内容。 - Lukas Knuth-f
。他说文件可能在他想获取最后几行时被写入。 - Lukas Knuthtail -f /your/file | grep error_of_interest
的操作。 - Axel