如何使用 Java 中的 RandomAccessFile 读取 .txt 文件?
javaobject oriented programmingprogramming
一般来说,在读取或写入文件数据时,您只能从文件开头读取或写入数据。您不能从随机位置读取/写入。
Java 中的 java.io.RandomAccessFile 类使您能够读取/写入数据到随机访问文件。
这类似于带有索引或光标(称为文件指针)的大型字节数组,您可以使用 getFilePointer() 方法获取此指针的位置,并使用 seek() 方法设置它。
此类提供各种方法来读取和写入数据到文件。此类的 readLine() 方法从文件中读取下一行并以字符串形式返回。
使用此类的 readLine() 方法从文件中读取数据 −
通过以字符串格式传递所需文件的路径来实例化 File 类。
实例化 StringBuffer 类。
通过传递上面创建的 File 对象和表示访问模式的字符串(r:read、rw:read/write 等)来实例化 RandomAccessFile 类。
当文件的位置小于其长度时迭代文件(length() 方法)。
将每一行附加到上面创建的 StringBuffer 对象。
示例
import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; public class RandomAccessFileExample { public static void main(String args[]) throws IOException { String filePath = "D://input.txt"; //实例化 File 类 File file = new File(filePath); //实例化 StringBuffer StringBuffer buffer = new StringBuffer(); //实例化 RandomAccessFile RandomAccessFile raFile = new RandomAccessFile(file, "rw"); //使用 readLine() 方法读取每一行 while(raFile.getFilePointer() < raFile.length()) { buffer.append(raFile.readLine()+System.lineSeparator()); } String contents = buffer.toString(); System.out.println("Contents of the file: \n"+contents); } }
输出
Contents of the file: Tutorials Point originated from the idea that there exists a class of readers who respond better to online content and prefer to learn new skills. Our content and resources are freely available and we prefer to keep it that way to encourage our readers acquire as many skills as they would like to. We don’t force our readers to sign up with us or submit their details either. Enjoy the free content