您的位置:首页 > 编程语言 > Java开发

Java使用RandomAccessFile复制文件(二):扩大缓存以提高每次读写的数据量

2019-03-14 09:08 966 查看
版权声明:转载注明来源。Keep Learning and Coding. https://blog.csdn.net/a771581211/article/details/88545477
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();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: