* RandomAccessFile(File file, String mode)
* 该类不属于IO体系的子类,其直接父类为Object
* 但属于IO包中的成员,具备读写功能
*
* 原理:
* 内部封装了一个byte[]数组和字节输入输出流,通过指针对数组元素进行操作
* long getFilePointer() 返回此文件中的当前偏移量(指针)。
* void seek(long pos) 设置指针的位置
*
* 根据其构造函数可知,该类只能操作文件 ,并且须定义文件操作模式:r,rw等
* 只读模式r下:不能创建文件,只能读取以创建的文件,若读取的文件不存在,发生异常
* 读写模式rw下:可以创建文件,若要操作的文件不存在,会自动创建,若存在,不会覆盖
*
* 该类不属于IO体系的子类,其直接父类为Object
* 但属于IO包中的成员,具备读写功能
*
* 原理:
* 内部封装了一个byte[]数组和字节输入输出流,通过指针对数组元素进行操作
* long getFilePointer() 返回此文件中的当前偏移量(指针)。
* void seek(long pos) 设置指针的位置
*
* 根据其构造函数可知,该类只能操作文件 ,并且须定义文件操作模式:r,rw等
* 只读模式r下:不能创建文件,只能读取以创建的文件,若读取的文件不存在,发生异常
* 读写模式rw下:可以创建文件,若要操作的文件不存在,会自动创建,若存在,不会覆盖
*
public class RandomAccessFileDemo {
public static void main(String[] args) throws Exception {
write();
read();
}
public static void write() throws Exception
{
RandomAccessFile raf
= new RandomAccessFile("RandomAccessFile.txt","rw");
//按字节方式写入
raf.write("马海超".getBytes());
//按四个字节写入
raf.writeInt(97);
raf.write("六月份".getBytes());
raf.writeInt(98);
raf.close();
}
public static void read() throws Exception
{
RandomAccessFile raf
= new RandomAccessFile("RandomAccessFile.txt","r");
byte[] buf = new byte[6];
raf.read(buf);
System.out.println(new String(buf));
//将指针设置到10处
raf.seek(10*1);
//跳过6个字节
raf.skipBytes(6);
//按四个字节格式读取
System.out.println(raf.readInt());
raf.close();
}
}