用Java,使用RandomAccessFile流将一个文本文件倒置读出
时间: 2023-07-20 22:26:28 浏览: 172
好的,可以使用Java的RandomAccessFile来实现这个功能。以下是代码示例:
```java
import java.io.*;
public class ReverseReadFile {
public static void main(String[] args) {
String filePath = "input.txt"; // 文件路径
try (RandomAccessFile file = new RandomAccessFile(filePath, "r")) {
long fileLength = file.length(); // 获取文件长度
StringBuilder sb = new StringBuilder(); // 用于存储倒置后的内容
for (long pointer = fileLength - 1; pointer >= 0; pointer--) {
file.seek(pointer); // 移动指针
char c = (char) file.read(); // 读取一个字符
if (c == '\n') { // 如果当前字符是换行符,则将当前行添加到StringBuilder中
sb.append(c);
} else { // 否则将当前字符添加到StringBuilder的开头
sb.insert(0, c);
}
}
System.out.println(sb.toString()); // 打印倒置后的内容
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上面的代码中,我们首先定义了要读取的文件路径。然后使用try-with-resources语句创建了一个RandomAccessFile流,打开指定的文件并设置为只读模式。
在for循环中,我们从文件的末尾开始逐个字符地读取文件内容。对于每个字符,我们判断它是否是换行符。如果是换行符,则将当前行添加到StringBuilder中;否则,将当前字符添加到StringBuilder的开头。
最后,我们打印倒置后的内容。如果在读取文件时出现了错误,我们通过捕获IOException异常来打印异常堆栈信息。
阅读全文