RandomAccessFile 之 文件断点拷贝
1、关于RandomAccessFile
- RandomAccessFile是Java.IO中提供的一个功能丰富的特殊流,该流包含对于文件读写操作,具体的使用方式和FileInoutStream和FileOutPutStream几乎一致,除此之外,RandomAccessFile还提供了对于元数据的读写操作。
2、参数mode
-
“r” 以只读方式打开。调用结果对象的任何 write 方法都将导致抛出 IOException。
-
“rw” 打开以便读取和写入。如果该文件尚不存在,则尝试创建该文件。
-
“rws” 打开以便读取和写入,对于 “rw”,还要求对文件的内容或元数据的每个更新都同步写入到底层存储设备。
-
“rwd” 打开以便读取和写入,对于 “rw”,还要求对文件内容的每个更新都同步写入到底层存储设备。
3、关于文件断点拷贝
+文件正常拷贝过程中,由于客观原因出现异常,导致拷贝中途停止;下一次拷贝时读取目标文件中上次拷贝的终止位置,将文件指针设置到该位置,继续拷贝。
代码
File file = new File("C:\\Users\\K U N\\Desktop\\35.mp4");
File target = new File("IO_lesson",file.getName());
RandomAccessFile reader= new RandomAccessFile(file,"r");
RandomAccessFile writer = new RandomAccessFile(target, "rw");
long pos = writer.length();
//将读写指针跳转到上次的位置
reader.seek(pos);
writer.seek(pos);
byte[] b = new byte[1024];
int len;
while ((len = reader.read(b))!=-1){
writer.write(b,0,len);
}
writer.close();
reader.close();