标签:color 计算 file 目标 code div ring new 内容
/*Key:【入】指的是到内存里,【出】指的是到内存外*/ import java.io.*; public class MyReadFile{ public static void main(String[] args){ try{ /*第一步,定位数据源&&目标文件*/ File f = new File("D:/lab_2/test.txt"); File f2 = new File("D:/lab_2/test2.txt"); /*第二步,建立输入&&输出管道*/ FileInputStream fis = new FileInputStream(f); FileOutputStream fos = new FileOutputStream(f2); /*第三步,操作管道*/ for(;fis.available() > 0;) fos.write(fis.read()); }catch(Exception e){} } }
由于是一个字节一个字节的读写,在文件稍微大一点的时候(大于1MB)时,速度会非常的慢。
稍作修改即可,每次1000个字节读写。
byte[] tmp = new byte[1000]; for(;fis.available() > 0;) fis.read(tmp); fos.write(tmp);
据说2的n次方计算机处理效率会更快。
byte[] tmp = new byte[8192]; for(;fis.available() > 0;) fis.read(tmp); fos.write(tmp);
最后是标准版。
/*第三步,操作管道*/ byte[] tmp = new byte[8192]; //处理大部分内容 int length = fis.available()/8192; for(int i = 0; i < length; i ++){ fis.read(tmp); fos.write(tmp); } //处理最后剩下的内容 int size = fis.read(tmp); fos.write(tmp, 0, size);
/*
最后一句改成:
int left_length = fis.availble();
fis.read(tmp, 0, left_length);
fos.write(tmp, 0, left_length);
也没有大问题。
*/
标签:color 计算 file 目标 code div ring new 内容
原文地址:http://www.cnblogs.com/xkxf/p/6043223.html