天天看点

学习笔记I/O篇之六

学习笔记I/O篇之六

import  java.io. * ;

学习笔记I/O篇之六
学习笔记I/O篇之六

class  RandomFileTest

学习笔记I/O篇之六
学习笔记I/O篇之六

... {

学习笔记I/O篇之六

 public static void main(String[] args) throws Exception

学习笔记I/O篇之六
学习笔记I/O篇之六

 ...{

学习笔记I/O篇之六

  Student s1=new Student(1,"zhangsan",98.5);

学习笔记I/O篇之六

  Student s2=new Student(2,"lisi",96.5);

学习笔记I/O篇之六

  Student s3=new Student(3,"wangwu",78.5);

学习笔记I/O篇之六

  RandomAccessFile raf=new RandomAccessFile("student.txt","rw");

学习笔记I/O篇之六

  s1.writeStudent(raf);

学习笔记I/O篇之六

  s2.writeStudent(raf);

学习笔记I/O篇之六

  s3.writeStudent(raf);

学习笔记I/O篇之六
学习笔记I/O篇之六

  Student s=new Student();

学习笔记I/O篇之六

  raf.seek(0);

学习笔记I/O篇之六

  for(long i=0;i<raf.length();i=raf.getFilePointer())

学习笔记I/O篇之六
学习笔记I/O篇之六

  ...{

学习笔记I/O篇之六

   s.readStudent(raf);

学习笔记I/O篇之六

   System.out.println(s.num+":"+s.name+":"+s.score);

学习笔记I/O篇之六

  }

学习笔记I/O篇之六

  raf.close();

学习笔记I/O篇之六

 }

学习笔记I/O篇之六

}

学习笔记I/O篇之六
学习笔记I/O篇之六

class  Student

学习笔记I/O篇之六
学习笔记I/O篇之六

... {

学习笔记I/O篇之六

 int num;

学习笔记I/O篇之六

 String name;

学习笔记I/O篇之六

 double score;

学习笔记I/O篇之六

 public Student()

学习笔记I/O篇之六
学习笔记I/O篇之六

 ...{

学习笔记I/O篇之六

 }

学习笔记I/O篇之六

 public Student(int num,String name,double score)

学习笔记I/O篇之六
学习笔记I/O篇之六

 ...{

学习笔记I/O篇之六

  this.num=num;

学习笔记I/O篇之六

  this.name=name;

学习笔记I/O篇之六

  this.score=score;

学习笔记I/O篇之六

 }

学习笔记I/O篇之六

 public void writeStudent(RandomAccessFile raf) throws IOException

学习笔记I/O篇之六
学习笔记I/O篇之六

 ...{

学习笔记I/O篇之六

  raf.writeInt(num);

学习笔记I/O篇之六

  raf.writeUTF(name);

学习笔记I/O篇之六

  raf.writeDouble(score);

学习笔记I/O篇之六

 }

学习笔记I/O篇之六

 public void readStudent(RandomAccessFile raf) throws IOException

学习笔记I/O篇之六
学习笔记I/O篇之六

 ...{

学习笔记I/O篇之六

  num=raf.readInt();

学习笔记I/O篇之六

  name=raf.readUTF();

学习笔记I/O篇之六

  score=raf.readDouble();

学习笔记I/O篇之六

 }

学习笔记I/O篇之六

}  

学习笔记I/O篇之六
学习笔记I/O篇之六

RandomAccessFile类同时实现了DataInput和DataOutput接口,提供了对文件随机存取的功能,利用这个类可以在文件的任何位置读取或写入数据。

RandomAccessFile类提供了一个文件指针,用来标志要进行读写操作的下一数据的位置。