RandomAccessFile

RandomAccessFile

  1. RandomAccessFile类同时实现了DataInput和DataOutput接口,提供了对文件随机存取的功能,利用这个类可以在文件的任何位置读取或写人数据;
  2. RandomAccessFile类提供了一个文件指针,用来标志要进行读写操作的下一数据的位置;
  3. 该方法把文件的读入,写出,写到一起了,是操作文件比较好的方法;

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);//把指针的偏移量设置到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();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值