首页 > 代码库 > 最简单的iostream——文件复制
最简单的iostream——文件复制
/*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);
也没有大问题。
*/
最简单的iostream——文件复制
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。