Java IO的应用之实现大文件复制
2016-08-31 20:41
661 查看
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5827481.html
用IO进行文件复制,实质就是用FileInputStream链接要复制的文件,按一定规模的字节数一段段地把文件复制读取出来,同时通过FileOutputStream把字节数组进行输出,直到待复制文件被“搬运”完毕。
画图理解:
代码实现:
有趣的实验:
上面用来充当搬运工的byte数组是50000B大小,读者可以尝试更改这架“搬运车”的运量,由小到大多试几个数值,你会发现复制的效率会随着字节数组的大小而改变,并且接近某一个数值时达到较大效率,之后更大数值反而效率下降。
用IO进行文件复制,实质就是用FileInputStream链接要复制的文件,按一定规模的字节数一段段地把文件复制读取出来,同时通过FileOutputStream把字节数组进行输出,直到待复制文件被“搬运”完毕。
画图理解:
代码实现:
import java.io.*; import java.util.*; public class IOliu{ public static void main(String[] args) { FileInputStream fis=null; FileOutputStream fos=null; try { File f1=new File("android.exe"); File f2=new File("android2.exe"); fis=new FileInputStream(f1); fos=new FileOutputStream(f2); byte[] bs=new byte[50000]; Date d=new Date(); int i; System.out.println("不带缓冲的 50000B 开始:"+d.toString()); while((i=fis.read(bs))!=-1) { fos.write(bs,0,i); } Date d2=new Date(); System.out.println("不带缓冲的 50000B 结束:"+d2.toString()); }catch(IOException ex) { System.out.println(ex); }finally { try{ fis.close(); fos.close(); }catch(IOException ex) { System.out.println(ex); } } } }
有趣的实验:
上面用来充当搬运工的byte数组是50000B大小,读者可以尝试更改这架“搬运车”的运量,由小到大多试几个数值,你会发现复制的效率会随着字节数组的大小而改变,并且接近某一个数值时达到较大效率,之后更大数值反而效率下降。
相关文章推荐
- Java IO 之 FileReader FileWriter 实现字符文件的复制(处理FileWriter新建文件失败的问题)
- java代码,io实现复制文件
- java IO之字节流和字符流-Reader和Writer以及实现文件复制拷贝
- Java IO 实现文件复制 -Java 学习笔记 (25)
- 学习之使用Java IO 来实现复制文件的操作
- java IO之字节流和字符流-Reader和Writer以及实现文件复制拷贝
- JavaIO操作实现文件复制与名称修改
- java io实现文件复制
- JAVA实现文件复制(IO)
- Java笔记之io——递归创建与删除多层文件夹,字符流实现文件复制
- java应用(非web应用)中log4j.properties动态修改配置文件,无需重启,就能立即生效,如何实现?
- Java中实现复制文件或文件夹
- java 实现文件复制的两种方式
- java实现文件和文件夹的复制
- java实现FTP远程文件移动(重命名、复制、拷贝)
- Java实现文件的复制和新Nio包通道的运用--Thinking in java
- JAVA应用XFire框架来实现WebServie的大文件传输功能之一(下载)
- 20110830 java IO处理学习----一个自写文件复制类
- JAVA应用XFire框架来实现WebServie的大文件传输功能之二(上传)
- 【Java IO】带缓冲的任意文件的复制