使用Java获取文本文件的最后MB

时间:2018-07-23 22:44:08

标签: java

我正在尝试在文本区域中显示日志文件。我只需要日志文件的最后一个MB。我怎样才能把它打印出来?如果是5MB的文件,我只想跳过前4MB并打印出文件的后1MB。我正在研究RandomAccessFile,File和BufferedReader。我只需要一个有关如何正确使用它们的示例,但是我总是得到错误的结果。

File file = new File("C:\\Windows\\PFRO.log");
RandomAccessFile raFile = new RandomAccessFile(file, "r");
byte[] data = new byte[10000000];
raFile.seek(file.length()-1000000);
raFile.read(data, (int) (file.length()-1000000), 1000000);
System.out.println("Here's the log: " + data.toString());

我得到的是以下日志:[B @ 7852e922 我如何获取内容? 谢谢!

1 个答案:

答案 0 :(得分:0)

怎么样

  BufferedReader raFile = new BufferedReader(new FileReader(file));
  char[] data = new char[SIZE];
  raFile.skip(file.length() - SIZE);
  raFile.read(data, 0, data.length);
  System.out.println("Here's the log: " + new String(data));