请使用 RandomAccessFile读取最后100行数据
时间: 2024-01-27 22:49:49 浏览: 127
Java实现按行读取大文件
好的,以下是使用 RandomAccessFile 读取最后100行数据的代码:
```java
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
public class ReadLast100Lines {
public static void main(String[] args) {
File file = new File("test.txt");
try (RandomAccessFile raf = new RandomAccessFile(file, "r")) {
long length = file.length();
long position = length - 1;
int count = 0;
StringBuilder sb = new StringBuilder();
while (position >= 0 && count < 100) {
raf.seek(position);
char c = (char) raf.read();
if (c == '\n') {
count++;
if (count == 100) {
break;
}
}
sb.append(c);
position--;
}
String result = sb.reverse().toString();
System.out.println(result);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这里假设要读取的文件名为 `test.txt`。首先,我们需要获取文件大小 `length`,然后从文件末尾开始向前读取字符,遇到换行符时计数器加一,直到读取到100行或者已经读取完整个文件。最后,将读取到的字符反转,即可得到最后100行数据。
阅读全文