RandomAccessFile类的学习

  

RandomAccessFile类(java高级02_02

1)    该类支持随机访问功能

package IO;

 

import java.io.*;

 

public class RandomFileTest {

 

    /**

     * @param args

     */

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

       Employee e1=new Employee("zhangsan",258);//定义一个对象

       Employee e2=new Employee("李四",24);

       Employee e3=new Employee("wangwu",25);

       //byte[] buf=new byte[Employee.LEN];

       String name="";//定义一个全局的字符串,存名字

       //int len=0;

       RandomAccessFile ra;

           ra = new RandomAccessFile("employee.txt","rw");//建立文件读写器,能读能写

           ra.writeChars(e1.getName());

           ra.writeInt(e1.getAge());

           ra.writeChars(e2.getName());

           ra.writeInt(e2.getAge());

           ra.writeChars(e3.getName());

           ra.writeInt(e3.getAge());

           ra.close();

       RandomAccessFile raf=new RandomAccessFile("employee.txt","r");//建立文件读写器,只可读

       raf.skipBytes(Employee.LEN*2+4);//把读标移动到第二个对象处,存储的是unicode编码,每个占2个字符

       //len=raf.read(buf);

       //name=new String(buf,0,len);

       for (int i = 0; i < Employee.LEN; i++) {

           name+=raf.readChar();//逐个读取字符,累加成字符串

       }

       System.out.println(name.trim()+":"+raf.readInt());//显示对象信息

       name="";//清空字符串

       raf.seek(0);//光标移动到第一个对象处

       //len=raf.read(buf);

       //name=new String(buf,0,len);

       for (int i = 0; i < Employee.LEN; i++) {

           name+=raf.readChar();

       }

       System.out.println(name.trim()+":"+raf.readInt());

       name="";

       raf.skipBytes(Employee.LEN*2+4);//读完第一个对象,把光标移动到下一对象

       //len=raf.read(buf);

       //name=new String(buf,0,len);

       for (int i = 0; i < Employee.LEN; i++) {

           name+=raf.readChar();

       }

       System.out.println(name.trim()+":"+raf.readInt());

 

    }

 

}

最终执行结果:

李四:24

zhangsan:258

wangwu:25

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值