RandomAccessFile
- RandomAccessFile类同时实现了DataInput和DataOutput接口,提供了对文件随机存取的功能,利用这个类可以在文件的任何位置读取或写人数据;
- RandomAccessFile类提供了一个文件指针,用来标志要进行读写操作的下一数据的位置;
- 该方法把文件的读入,写出,写到一起了,是操作文件比较好的方法;
import java.io.*;
class RandomAccessFileTest{
public static void main(String[] arg) throws Exception{
Student s1 = new Student(1,"zhangsan",95.5);
Student s2 = new Student(2,"lisi",96.5);
Student s3 = new Student(3,"wangwu",94);
RandomAccessFile raf = new RandomAccessFile("student.txt","rw");
s1.writeStudent(raf);
s2.writeStudent(raf);
s3.writeStudent(raf);
Student s = new Student();
raf.seek(0);
for(long i=0 ; i < raf.length();i=raf.getFilePointer()){
s.readStudent(raf);
System.out.println("num="+s.num+"name="+s.name+"score="+s.score);
}
raf.close();
}
}
class Student{
int num;
String name;
double score;
Student(){}
Student(int num,String name,double score){
this.num = num;
this.name = name;
this.score = score;
}
public void writeStudent(RandomAccessFile raf) throws Exception{
raf.writeInt(num);
raf.writeUTF(name);
raf.writeDouble(score);
}
public void readStudent(RandomAccessFile raf) throws Exception{
num = raf.readInt();
name = raf.readUTF();
score = raf.readDouble();
}
}