w.seek(8*3);//将指针放在数组第8*3个位置,及以下操作从这个位置进行,意思是,上面写的李四、王五,加上年龄,一共是占了2*8个字节
//效果是,王五和李四之间,空了8个字节,这就是该类的随机读写特有方法
//效果:李四 b王五 x 张三 ?
//w.seek(8*0),如果此处从8*0个位置开始写,则会把李四、98覆盖,这个方法的特有方式是指针可以前后移动,
//相反,skipByte(8)方法,则是跳过8个字节,后进行读写操作,但是跳过后,就不能会跳了,指针无法往回移动。
w.write("张三".getBytes());
w.writeInt(170);
w.close();
}
public void RandomAccessFile_demo2() throws IOException{
RandomAccessFile r = new RandomAccessFile("rd.txt","rw");
r.seek(8*3);//根据测试例子,从数组的第8*3的位置读取,即读出的是 张三 170
byte[] bt = new byte[4];
r.read(bt);//将文件读取,放到bt数组中,由于测试例子,李四是四个字节,所以此处读取bt.lengh的长度的数据存在四个字节数组中
String name = new String(bt);//将存满的bt数组,转换成字符串
System.out.println("name = "+name);//输出字符串
int age = r.readInt();//根据测试例子,然后读取一个32位整数,即4个字节,由于之前存放的年龄就是四个字节,此处取出的是年龄
System.out.println("age = "+age);
r.close();
}