RandomAccessFile 允许你来回读写文件,也可以替换文件的某些部分。FileInputStream 和 FileOutputStream 没有这样的功能。
创建一个 RandowAccessFile
在使用 RandomAccessFile 之前,必须初始化它。如下
RandomAccessFile file = new RandwoAccessFile("C://data//text.txt","rw");
请注意构造函数的第二个参数:”rw”,表明你以读写方式打开文件。
在 RandomAccessFile 中来回读写
在 RandomAccessFile 的某个位置读写之前,必须把文件指针指向该位置。通过 seek() 方法可以达到这一目的。可以通过调用 getFilePointer() 获取当前文件指针的位置。
RandomAccessFile file = new RandomAccessFile("c:\\data\\text.txt", "rw");
file.seek(200);
long pointer = file.getFilePointer();
file.close();
读取 RandomAccessFile
RandomAccessFile 中的任何一个 read() 方法都可以读取 RandomAccessFile 的数据。
RamdomAccessFile file = new RandomAccessFile("c:\\data\\text.txt", "rw");
int aByte = file.read();
file.close();
read() 方法返回当前 RandomAccessFile 实例的文件指针指向的位置中包含的字节内容。
read() 方法在读取完一个字节后,会自动把指针移动到下一个可读字节。这意味着使用者在调用完 read() 方法之后不需要手动的移动文件指针。
写入 RandomAccessFile
RandomAccessFile 中的任何一个 writer() 方法都可以往 RandomAccessFile 中写入数据。
RandomAccessFile file = new new RandomAccessFile("c:\\data\\text.txt", "rw");
file.write("Hello world".getBytes());
file.close();