缓冲流实现文件复制(bufferedInputStream为例子)

  1. package _07;
  2. import java.io.BufferedInputStream;
  3. import java.io.BufferedOutputStream;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.FileNotFoundException;
  7. import java.io.FileOutputStream;
  8. //用缓冲字节流复制文件
  9.  // 异常处理用 try-catch 会好一点 没有用try-catch 如果出现异常 f.close()关闭操作可能就没有执行 
  10.  // 为了容易看  直接抛出异常
  11. public class copy_text {
  12.     public void copy(String s1,String s2) throws Exception {
  13.         File f1 = new File(s1);                                           //必须存在
  14.         File f2= new File(s2);                                            //可以不存在
  15.         FileInputStream f3=new FileInputStream(f1);
  16.         FileOutputStream f4=new FileOutputStream(f2);
  17.         BufferedInputStream f5=new BufferedInputStream(f3);
  18.         BufferedOutputStream f6=new BufferedOutputStream(f4);
  19.         byte []b=new byte[20];
  20.         int i;
  21.         while((i=f5.read(b))!=-1){
  22.             f6.write(b,0,i);                                  //从0--i 写入数据 不能为0--b.length 因为最后可能写不满b整个数组 导致前面写的数据没有覆盖  导致复制错误
  23.              f6.flush();                                                      //最后一次可能存不满 加着一个 保险一点
  24.         }
  25.              
  26.         f5.close();
  27.         f6.close();
  28.     }
  29.     public static void main(String[] args) throws Exception {
  30.         String s1="C:\\Users\\ASUS\\Desktop\\编程思想.docx";            // 想要复制文件路径
  31.         String s2="C:\\Users\\ASUS\\Desktop\\编程思想2.docx";         //文件保存路径 
  32.         copy_text c=new copy_text();
  33.         long start=System.currentTimeMillis();
  34.         c.copy(s1,s2);
  35.         long end=System.currentTimeMillis();
  36.         System.out.println("运行时间"+(end-start));
  37.     }
  38. }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值