一、JDK介绍
1、JDK定义
public class RandomAccessFile
extends Object
implements DataOutput, DataInput, Closeable
2、构造方法
public RandomAccessFile(File file,
String mode)
throws FileNotFoundException
public RandomAccessFile(String name,
String mode)
throws FileNotFoundException
二、演示代码
1.写入
package io;
import java.io.File;
import java.io.RandomAccessFile;
/**
* 随机的文件读取操作,注意要以固定的长度写入
*
* @ClassName: RandomAccessFileDome
* @Author: Xlu103
* @Date: 2020-06-04 19:54
**/
public class RandomAccessFileDome {
public static void main(String[] args) throws Exception{
File file =new File("src"+File.separator+"io"+File.separator+"xlu.txt");
RandomAccessFile raf = new RandomAccessFile(file, "rw");
//姓名占8位 int占4位
String[] name = new String[]{"zhangsan","lisi ","wangwu "};
int[] age = new int[]{20, 60, 15};
for (int i = 0; i < name.length; i++) {
//写入字符串
raf.write(name[i].getBytes());
//写入名字
raf.writeInt(age[i]);
}
}
}
2.读取
package io;
import java.io.File;
import java.io.RandomAccessFile;
/**
* 随机的文件读取操作,注意要以固定的长度写入
*
* @ClassName: RandomAccessFileDome
* @Author: Xlu103
* @Date: 2020-06-04 19:54
**/
public class RandomAccessFileDome {
public static void main(String[] args) throws Exception{
File file =new File("src"+File.separator+"io"+File.separator+"xlu.txt");
RandomAccessFile raf = new RandomAccessFile(file, "rw");
byte []data=new byte[8];
int len=0;
//跳24个字节,找到王五
raf.skipBytes(24);
//用于存名字
len=raf.read(data);
System.out.println("姓名:"+new String(data, 0, len).trim()+",年龄:"+raf.readInt());
//跳回到初始位置找到张三
raf.seek(0);
len=raf.read(data);
System.out.println("姓名:"+new String(data, 0, len).trim()+",年龄:"+raf.readInt());
}
}