今天学习RandomAccessFile,看字面意思就觉得是,随机访问文件,是的这个类是操作文件的,
首先了解构造函数,RandomAccessFile(File file,String mode) ,mode是操作模式 有四种模式
r rw rws rwd 前两种用的很多。
接下来方法,getFilePoint 字面意思 得到指针位置
seek 设置指针的文职。
然后就是 write read 这个类里面封装了文件字节流对象
下面举几个例子
public void writeFile(){
RandomAccessFile raf=new RandomAccessFile("ran.txt","rw");//设置模式为读写操作,文件名为ran.txt
raf.write("张三".getBytes());
//raf.wriet(284);//这种write写int类型的时候,只写八个字节,也就是是说大于的话,会丢失数据
//所以提倡使用下面这种方法
raf.writeInt(184);//这种方法,是写四个字节,
raf.write("李四".getBytes());
raf.writeInt(95);
raf.close();
}
public void readFile(){
RandomAccessFile raf=new RandomAccessFile("ran.txt","rw");
byte b[]=new byte[1024];
raf.read(b);//读四个字节
String name=new String(b);
int age=raf.readInt()
System.out.println(name+";;"+age);
}
//但是上面的写方法很麻烦
public static void writeFile_2(){
RanAccessFile raf=new RamdomAccessFile("ran.txt","rw"):
raf.seek(8*1);//这里就体现了随机访问的特性,设置指针的位置实现随机访问
raf.skipBytes(8*1);//这个方法也可以,跳过多少个字节数
raf.write("zz".getBytes());
raf.close();
}
//但是我也有几个问题,就是字节数的问题,writeInt()为什么会有空格?