rafiledemo.java

来自「因此本系统的目标就是让顾客方便快捷和满意的购物。为了达到这一目标」· Java 代码 · 共 52 行

JAVA
52
字号
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 + =
减小字号Ctrl + -
显示快捷键?