使用随机访问文件,我们可以从文件读取以及写入文件。使用文件输入和输出流的读取和写入是顺序过程。使用随机访问文件,可以在文件中的任何位置读取或写入。RandomAccessFile
类的一个对象可以进行随机文件访问。可以读/写字节和所有原始类型的值到一个文件。
RandomAccessFile
可以使用其readUTF()
和writeUTF()
方法处理字符串。RandomAccessFile
类不在InputStream
和OutputStream
类的类层次结构中。
模式
可以在四种不同的访问模式中创建随机访问文件。访问模式值是一个字符串。 它们列出如下:
模式 | 含义 |
---|---|
“r” | 文件以只读模式打开。 |
“rw” | 该文件以读写模式打开。 如果文件不存在,则创建该文件。 |
“rws” | 该文件以读写模式打开。 对文件的内容及其元数据的任何修改就会立即被写入存储设备。 |
“rwd” | 该文件以读写模式打开。 对文件内容的任何修改都会立即写入存储设备。 |
读和写
通过指定文件名和访问模式来创建RandomAccessFile
类的实例。
1
|
RandomAccessFile raf = new RandomAccessFile( "randomtest.txt" , "rw" ); |
随机访问文件具有文件指针,当从其读取数据或向其写入数据时,文件指针向前移动。文件指针是下一次读取或写入将开始的光标。其值指示光标与文件开头的距离(以字节为单位)。
可以通过使用其getFilePointer()
方法来获取文件指针的值。当创建一个RandomAccessFile
类的对象时,文件指针被设置为零。可以使用seek()
方法将文件指针设置在文件中的特定位置。
RandomAccessFile
类的length()
方法返回文件的当前长度。可以通过使用其setLength()
方法来扩展或截断文件。