欢迎来到天天文库
浏览记录
ID:6077652
大小:47.00 KB
页数:8页
时间:2018-01-02
《randomaccessfile使用实例》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、RandomAccessFile使用实例随机访问类(RandomAccessFile)-输入流FileInputStream和输出流FileOutputStream,实现的是对磁盘文件的顺序读写,而且读写要分别创建不同对象。相比之下RandomAccessFile类则可对文件实现随机读写操作。RandomAccessFile对象的文件位置指针遵循下面的规律:·新建RandomAccessFile对象的文件位置指针位于文件的开头处;·每次读写操作之后,文件位置的指针都相应后移到读写的字节数;·可以通过getFilePointer方法来
2、获得文件位置指针的位置,通过seek方法来设置文件指针的位置。如果某个文件有30个字节,读取数据过程中,从20-30读取,用skip(),但在读取的过程中,前面的字节都被删除掉了,如果用户有这样的需求,先读取10-20字节,之后再读1-10之间的数,再20-30之间,java.io随机访问文件类RandomAccessFilejava.io.RandomAccessFile所有已实现的接口:Closeable,DataInput,DataOutput
3、0
4、
5、10
6、
7、20
8、
9、30
10、(指示器)RandomAccessFile常用方法:s
11、kipBytes(longi):从前往后拨弄指示器的位置,就是跳过多少个字节读取数据。Voidseek(longp):对指示器作决定性的定位,用于从后往前拨弄指示器的位置。对于seek方法,拥有skipBytes()的功能,但seek()在使用过程非常影响系统的开销。只有万不得已的情况下使用。例:seek(0)指示器移到首部RandomAccessFile类,即可以充当输入也可充当输出流。可以看作节点流。构造方法:RandomAccessFile(”路径文件名”,String“rw”/”r”)两个参数,//创建模式:“rw”代表写流
12、,“r”代表读流,RandomAccessFile常用方法Voidclose()Longlength()Voidseek()##LonggetFilePointer()获得当前指针位置,默认为0,Intread()从文件当前位置读取一个字节intread(byte[]b)intread(byte[]b,intoff,intlen)FinalbooleanreadBoolean()从文件当前位置读取boolean类型的一个字节boolean在内存占1/8FinalcharreadChar()从文件中读取2个字节。Finalintrea
13、dInt()从文件中读取4个字节。##FinalStringreadLine()从文件中读取一行后转为String。Voidwrite(byte[]b)将字节数组B中的数据写到文件中。Voidwrite(byte[]b,intoff,intlen)将len个字节从指定字节数组写入到此文件,并从偏移量off处开始。编程实例:往文件中写入三名员工的信息,每个员工含有姓名和年龄两个字段,然后按照第二名,第一名,第三名的先后顺序读出员工信息。//Employee.javapackagesrcpublicclassEmployee{publi
14、cStringname=null;publicintage=0;publicstaticfinalintLEN=8;publicEmployee(Stringname,intage){//控制name的长度if(name.length()>LEN){name=name.substring(0,8);//subString(a,b)取出第a到b-1位置的字符}else{while(name.length()15、is.age=age;}}//RandomFileTest.java启动程序packagesrcimportjava.io.*;publicclassRandomFileTest{publicstaticvoidmain(String[]args)throwsException{Employeee1=newEmployee("zhangsan",23);Employeee2=newEmployee("lili",24);Employeee3=newEmployee("wnagwu",25);RandomAccessFilera=ne16、wRandomAccessFile("employee.txt","rw");ra.write(e1.name.getBytes());//write()只写入一个字节的数据或是字节数组getBytes()转换成为字节数组ra.wri
15、is.age=age;}}//RandomFileTest.java启动程序packagesrcimportjava.io.*;publicclassRandomFileTest{publicstaticvoidmain(String[]args)throwsException{Employeee1=newEmployee("zhangsan",23);Employeee2=newEmployee("lili",24);Employeee3=newEmployee("wnagwu",25);RandomAccessFilera=ne
16、wRandomAccessFile("employee.txt","rw");ra.write(e1.name.getBytes());//write()只写入一个字节的数据或是字节数组getBytes()转换成为字节数组ra.wri
此文档下载收益归作者所有