1 概述
RandomAcessFile
随机访问文件,自身具备读写的方法
通过skipBytes( int x)
,seek( int x)
来达到随机访问特点:
1 即可读取,又可以写入
2 内部维护了一个 大型的byte数组,通过对数组的操作完成读取和写入
3 通过getFilePointer()
方法 获取指针的位置,还可以通过seek()
方法 设置指针的位置
4 该对象的内容封装了 字节输入流 和 字节输出流
5 该对象只能操作文件 — 文件包括文本文件和媒体文件通过seek方法操作指针,可以从这个数组中的任意位置上进行读和写,可以完成对数据的修改
但是要注意:数据必须有规律
2 写方法
writeBytes(String s)
: 按字节序列将该字符串写入该文件该字符串中的每个字符均按顺序写出,并丢弃其高八位
write(byte[] b)
: 将 b.length 个字节从指定 byte 数组写入到此文件
writeInt
: 按四个字节将 int 写入该文件,先写高字节
使用RandomAccessFile对象写入一些人员信息,比如姓名和年龄
// 如果文件不存在,则创建,如果文件存在,不创建
// 但是,不是覆盖原来的文件,如果从头写,会覆盖原来的数据,从尾部写,根据指针的位置,直接追加到后面
RandomAcessFile raf = new RandomAcessFlie("raf.txt");
raf.write("张三".getBytes());
raf.write(97); // 输出 a 把数据写硬盘上,记事本解析这个信息 97对应a,但是读的时候还是97<