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

  • 相关阅读:
    phpcms URL
    域名加前后缀
    8、对象Object
    7、数组Array
    6、函数返回值、this、递归及回调函数
    5、函数、声明提前、作用域及函数参数
    4、while、dowhile、for、嵌套循环及关键字
    3、分支、if及switch语句
    2、js运算及进制
    1、JavaScript数据类型及输出
  • 原文地址:https://www.cnblogs.com/ygj0930/p/5827481.html
Copyright © 2011-2022 走看看