📄 rafiledemo.java
字号:
import java.io.*;
class Employee{
String name;
int age;
public Employee(String name,int age){ //将每名员工信息修改成等长的记录
if(name.length()>8) //其中姓名字段是8个字节,年龄字段是4个字节
name = name.substring(0,8);
else{
while(name.length()<8)
name +="\u0000";
}
this.name = name;
this.age = age;
}
}
public class RAFileDemo{
public static void main(String args[]){
Employee e1 = new Employee("ZhangSansan",21);
Employee e2 = new Employee("LiMing",22);
Employee e3 = new Employee("ChenLi",19);
try{
RandomAccessFile ra = new RandomAccessFile("Employee.dat","rw");
ra.write(e1.name.getBytes());
ra.writeInt(e1.age);
ra.write(e2.name.getBytes());
ra.writeInt(e2.age);
ra.write(e3.name.getBytes());
ra.writeInt(e3.age);
ra.close();
RandomAccessFile raf = new RandomAccessFile("Employee.dat","r");
String strname;
byte [] buf = new byte[8];
raf.seek(12); //将文件指针移动到第二名员工的位置
raf.read(buf);
strname = new String(buf);
System.out.println(strname+":" +raf.readInt());
raf.seek(0); //将文件指针移动到第一名员工的位置
raf.read(buf);
strname = new String(buf);
System.out.println(strname+":" +raf.readInt());
raf.skipBytes(12); //将文件指针移动到第三名员工的位置,等同于raf.seek(24)
raf.read(buf);
strname = new String(buf);
System.out.println(strname+":" +raf.readInt());
raf.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -