package day06;
import java.io.IOException;
import java.io.RandomAccessFile;
/**
* 若想提高读写效率,可以通过提高每次读写的数据量来减少读写次数来达到目的。
* @author kaixu
*
*/
public class CopyDemo2 {
public static void main(String[] args) throws IOException {
RandomAccessFile src = new RandomAccessFile("raf.dat", "r");
RandomAccessFile src_copy = new RandomAccessFile("raf_copy01.dat", "rw");
/*
* int read(byte[] data)
* 一次性尝试读取给定的字节数组总长度的字节量并存入到该数组中
* 返回值为实际读取到的字节量,若返回值为-1,则表示本次没有读取到任何数据(文件末尾)
*/
//内存缓存开辟为10K(效率很高的值)
byte[] buf = new byte[1024*10];
int len = -1;
long start = System.currentTimeMillis();
while((len = src.read(buf))!=-1){
/*
* void write(byte[] data)
* 一次性将给定的字节数组中的所有字节写出
*
* void write(byte[] d, int start,int len)
* 将给定数组中从下标start处开始的连续len个字节一次性写出。
*/
src_copy.write(buf,0,len);
}
long end = System.currentTimeMillis();
System.out.println("复制完毕!耗时为"+(end-start)+"ms");
src.close();
src_copy.close();
}
}
Java使用RandomAccessFile复制文件(二):扩大缓存以提高每次读写的数据量
最新推荐文章于 2025-07-10 09:49:19 发布