📄 8.8rafile.java
字号:
import java.io.*;
public class RaFile{
public static void main (String []args)
{
Student s[]=new Student[4];
s[0]=new Student("zhangsan",17,false);
s[1]=new Student("lisi",18,true);
s[2]=new Student("wangwu",20,true);
s[3]=new Student("zhaoliu",19,false);
try{
RandomAccessFile ra=new RandomAccessFile("student.dat","rw"); //以读写方式打开文件
for(int i=0;i<4;i++) //将4个学生信息写入文件
{
ra.writeBytes(s[i].name); //将类型写文件
ra.writeInt(s[i].age);
ra.writeBoolean(s[i].sex);
}
System.out.println("随机文件字节数: "+ra.length());
ra.seek(0); //文件指针指向开始位置
System.out.println("第1条学生记录: ");
byte b[]=new byte[8];
ra.read(b);
int age=ra.readInt();
boolean sex=ra.readBoolean();
System.out.println(new String(b)+"\t"+age+'\t'+sex);
ra.skipBytes(26); //跳过26个字节访问第4个记录
System.out.println("移动后指针位置: "+ra.getFilePointer());
ra.read(b); //按类型读取文件内容
age=ra.readInt();
sex=ra.readBoolean();
System.out.println(new String(b)+"\t"+age+"\t"+sex);
ra.close();
}
catch(IOException e){ //捕获输入输出异常
System.out.println(e.toString());
}
}
}
class Student{
String name;
int age;
boolean sex;
final static int LEN=8;
Student(String name,int age,boolean sex){
if(name.length()>LEN){
name=name.substring(0,8); //超过8个字符取前8个
}
else{
while(name.length()<LEN)
name=name+"\u0000"; //不足8位补足
}
this.name=name;
this.age=age;
this.sex=sex;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -