RandomAccessFile类

file类只是针对文件本身操作,而不能对文件内容进行操作,面对这种情况我们可以使用RandomAccessFile类进行操作。这个类可以随机的读取文件中的指定位置的数据。

代码1:写文件

package org.wkj.deno.randomaccessdemo;


import java.io.File;
import java.io.RandomAccessFile;


public class RandomAccessFileDemo01 {


public static void main(String[] args) throws Exception {
File f = new File("d:"+File.separator+"test.txt");
RandomAccessFile rdf = null;
rdf = new RandomAccessFile(f, "rw");
String name=null;
int age=0;
name="zhangshan"; 
age = 30;
rdf.writeBytes(name);
rdf.writeInt(age);
name="lisi";
age = 31;
rdf.writeBytes(name);
rdf.writeInt(age);
name="wangwu";
age = 32;
rdf.writeBytes(name);
rdf.writeInt(age);
rdf.close();



}


}

使用RandomAccessFile读取数据

package org.wkj.deno.randomaccessdemo;


import java.io.File;
//import java.io.FileNotFoundException;
import java.io.RandomAccessFile;


public class RandomAccessFileDemo02 {


public static void main(String[] args) throws Exception {
File f = new File("d:"+File.separator+"test.txt");
RandomAccessFile rdf = null;
rdf = new RandomAccessFile(f, "r");
String name = null;
int age = 0;
byte[] b = new byte[8];
rdf.skipBytes(12);
for (int i = 0; i < b.length; i++) {
b[i]=rdf.readByte();
}

name = new String(b);
age= rdf.readInt();
System.out.println("第二个人的信息------>姓名:"+name+":年龄:"+age);
rdf.seek(0);
b = new byte[8];
for (int i = 0; i < b.length; i++) {
b[i]=rdf.readByte();
}
name = new String(b);
age= rdf.readInt();
System.out.println("第一个人的信息------>姓名:"+name+":年龄:"+age);
rdf.skipBytes(12);
b = new byte[8];
for (int i = 0; i < b.length; i++) {
b[i]=rdf.readByte();
}
name = new String(b);
age= rdf.readInt();
System.out.println("第三个人的信息------>姓名:"+name+":年龄:"+age);
rdf.close();


}


}


总结

知道RandomAccessFile的作用就可以了,一般使用起来比较麻烦的







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值