zoukankan      html  css  js  c++  java
  • Java IO的应用之实现大文件复制

         

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5827481.html 

         用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大小,读者可以尝试更改这架“搬运车”的运量,由小到大多试几个数值,你会发现复制的效率会随着字节数组的大小而改变,并且接近某一个数值时达到较大效率,之后更大数值反而效率下降。

  • 相关阅读:
    迭代器和生成器
    装饰器进阶
    闭包和装饰器
    函数的嵌套
    函数的参数
    什么是粘包现象
    模拟ssh远程命令执行
    客户端与服务端代码bug修复和加入循环
    用socket实现简单的套接字通讯
    网络编程之客户端和服务端,
  • 原文地址:https://www.cnblogs.com/ygj0930/p/5827481.html
Copyright © 2011-2022 走看看