Java基础知识复习的Java IO类——随机访问文件类
java.io
类RandomAccessFile
随机访问文件(文件文件,字符串模式)
随机访问文件(字符串名称,字符串模式)
public voidseek(long pos)throwsio exception设置指针的初始位置。
longgetFilePointer()throwsio exception返回指针的位置,即从开始的偏移量,以字节为单位。
mode 参数指定用以打开文件的访问模式:
价值
隐含意义
r
以只读方式打开。调用结果对象的任何写方法都会导致引发IOException。
rw '
从而开启读写。如果文件不存在,请尝试创建它。
rws '
为了打开读写,对于“rw”,还要求文件内容或元数据的每次更新都同步写入底层存储设备。
rwd '
为了打开读写,对于“rw”,还要求文件内容的每次更新都同步写入底层存储设备。
代码:
用ranacc.txt写,张三,97,王强,99。
//使用RandomAccessFile对象写一些关于人的信息,比如姓名和年龄。
公共静态void writeFile()引发IOException{
/*
*如果文件不存在,将创建该文件;如果文件存在,将不会创建它。
*
*/
RandomAccessFile RAF=new RandomAccessFile(' ranacc . txt ',' rw ');
Raf.write('张三'。getBytes());
RAF . writeint(97);
拉夫赖特('萧蔷')。getBytes());
RAF . writeint(99);
//
RAF . close();
}
存储在RandomAccessFile对象的字节数组中,如下图所示:
汉字是两个字节,数字是一个字节:
然后需求需要读取萧蔷的信息并输出萧蔷,99。
这使用RandomAccessFile对象中的查找方法。
/**
*阅读萧蔷的信息,而不是张三的。
* @抛出IOException
*/
public static void readFile()引发IOException {
RandomAccessFile RAF=new RandomAccessFile(' ranacc . txt ',' r ');
//通过查找设置指针的位置。
RAF . seek(1 * 8);//随机读取。只需指定指针的位置。
byte[] buf=新字节[4];
RAF . read(buf);
字符串名称=新字符串(buf);//
int age=RAF . readint();//从当前指针读取4个字节
system . out . println(' name=' name ');
system . out . println(' age=' age ');
system . out . println(' pos : ' RAF . GetFilePointer());//获取指针的位置
RAF . close();
}
输出:
name=小强age=99pos:16
结论:随机读取可以读取字节数组中任意位置的数据。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/154990.html