1:为什么要用到RandomAccessFile
RandomAccessFile可以解决从指定位置读取文件,从指定位置写入文件,适用于多线程下载一个大文件,获取文件指定位置的数据等。
2: 常用方法
RandomAccessFile raf = newRandomAccessFile(File file, String mode);
其中参数mode的值可选:
“r” : 可读,“w” : 可写,“rw” : 可读写;“rws” : 每当进行写操作,同步刷新到磁盘,刷新内容和元数据;“rwd” : 每当进行写操作,同步刷新到磁盘,刷新内容;
成员方法:
seek(int index) :可以将指针移动到某个位置开始读写;
setLength(long len) : 给写入文件预留空间;
getFilePointer : long类型的返回值,返回当前的文件光标位置;
length : 文件的长度,long类型返回值,不受光标影响;
下图是从指定位置读取文件的功能
1:创建RandomAccessFile对象,r:以只读打开文件(只能进行读取文件内容)
2:调用seek方法,把文件的记录指针定位到500字节的位置,从第500字节开始读取的;
下图是向文件中追加内容
1:创建对象
2:追加内容
下图是向文件指定位置插入内容
使用File类的createTempFile方法创建一个临时文件(该文件将在JVM退出后删除),用于保存被插入点后面的内容。
程序先将文件中插入点后的内容读入临时文件中,然后重新定位到插入点,将需要插入的内容添加到文件后面,最后将临时文件的内容添加到最后面
下图为从一个文件中读取后写入另一个文件中