直接贴代码了,不懂的地方留言讨论
package org.mark.randomaccessfile;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.RandomAccessFile;
public class RandomAccessfileDemo2 {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args)throws Exception{
// TODO Auto-generated method stub
File file = new File("d:" +File.separator+"test.txt");//指定要操作的文件
RandomAccessFile rdf = null; //声明randomaccessfile类
try {
rdf = new RandomAccessFile(file, "r");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}//读文件
String nameString = null;
int age = 0;
byte b[] = new byte[8];//开辟byte数组
//读取第二个人的信息,意味着要空出第一个人的信息
rdf.skipBytes(12);// skipBytes跳过第一个人的信息
for (int i = 0; i < b.length; i++) {
b[i] = rdf.readByte(); //读取一个字节
}
//String有个方法,String(byte[] bytes) 读出bytes
nameString = new String(b);//读取
age = rdf.readInt();//读取数字
System.out.println("第二个人的信息——>姓名:" + nameString + ",年龄:" +age);
//读取第一个人的信息
rdf.seek(0);//指针回到文件的开头
for (int i = 0; i < b.length; i++) {
b[i] = rdf.readByte(); // 读取一个字节
}
//String有个方法,String(byte[] bytes) 读出bytes
nameString = new String(b);//读取
age = rdf.readInt();//读取数字
System.out.println("第一个人的信息——>姓名:" + nameString + ",年龄:" +age);
//如果要空出第二个人的信息,则再使用 rdf.skipBytes(12);
rdf.skipBytes(12);
for (int i = 0; i < b.length; i++) {
b[i] = rdf.readByte(); //读取一个字节
}
//String有个方法,String(byte[] bytes) 读出bytes
nameString = new String(b);//读取
age = rdf.readInt();//读取数字
System.out.println("第三个人的信息——>姓名:" + nameString + ",年龄:" +age);
rdf.close(); //关闭
}
}