FileInputStream对象和FileOutStream对象、FileReader和FileWriter对象实现的文件读写文件读写方式均为顺序(Sequence)读取方式,即在创建文件对象实例后,从文件的起始位置顺序地读写到文件结束位置。这种读写方式读取文件中指定位置处的内容带来极大不便。
java jdk api中又定义了随机文件访问类RandomAccessFile,用于建立指向文件实体的流对象后,以类似C/C++中文件指针的方式在文件中定位,并随机读取指定位置(任一记录)的内容。
java.lang.Object
java.io.RandomAccessFile
直接继承于Object类,而非继承底层流对象InputStream和OutStream。
定义:public class RandomAccessFile extends Object implements DataInput,DataOutput
构造:RandomAccessFile(File file,String mode)
RandomAccessFIle(String name,String mode)
FIle和name参数分别表示指向文件系统中文件实体的FIle对象实例和该文件的字符串名称,字符串mode表示随机文件访问对象实例的文件对象方式:
r:表示创建的随机文件访问对象用于从外部文件中读取文件内容,如果指定的文件实体不存在,JVM抛出FIleNotFoundException类型异常。
rw:表示创建的随机文件访问对象用于从外部文件中读取文件内容或者向外部文件中输出内容,如果指定文件不存在,则自动创建文件字节数为0的空文件
rwd:每一次文件内容的修改被同步写入存储设备上
rws: 每一次文件内容的修改或变化的数据被同步写入存储设备上