RandomAccessFile随机访问文件流
RandomAccessFile类
RandomAccessFile 声明在java.io包下,但直接继承于java.lang.Object类,这个类既可以读也 可以写。
RandomAccessFile 类支持 “随机访问” 的方式,程序可以直接跳到文件的任意 地方来读、写文件
- 支持只访问文件的部分内容
- 可以向已存在的文件后追加内容
RandomAccessFile 对象包含一个记录指针,用以标示当前读写处的位置。
构造方法
RandomAccessFile(File file, String mode) 创建从中读取和向其中写入(可选)的随机访问文件流,该文件由 File 参数指定。 |
---|
RandomAccessFile(String name, String mode) 创建从中读取和向其中写入(可选)的随机访问文件流,该文件具有指定名称。 |
创建 RandomAccessFile 类实例需要指定一个 mode 参数,该参数指 定 RandomAccessFile 的访问模式(介绍2种常用的):
- r: 以只读方式打开(不会创建文件,读取已经存在的文件)
- rw:可读可写(文件不存在会创建,存在不会创建)
成员方法
常规的read write方法
RandomAccessFile 类对象可以自由移动记录指针:
- long getFilePointer():获取文件记录指针的当前位置
- void seek(long pos):将文件记录指针定位到 pos 位置
long | getFilePointer() 返回此文件中的当前偏移量。(获取文件记录指针的当前位置号) |
---|---|
void | seek(long pos) 重置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作。(将文件记录指针定位到pos位置) |
使用RandomAccessFile读写数据
读取
/*
RandomAccessFile读取数据
*/
@Test
public void readTest() throws IOException {
System.out.println("System.getProperty(\"user.dir\") = " + System.getProperty("user.dir"));
// 创建对象
RandomAccessFile randomAccessFile = new RandomAccessFile("a.txt", "r");
// read数据
// 获取当前位置索引
long filePointer = randomAccessFile.getFilePointer();
System.out.println(