zoukankan      html  css  js  c++  java
  • JAVA复制文件最快的算法

    /**
    * 复制文件
    *
    * @param srcFile
    * 源文件File
    * @param destDir
    * 目标目录File
    * @param newFileName
    * 新文件名
    * @return 实际复制的字节数,如果文件、目录不存在、文件为null或者发生IO异常,返回-1
    */
    public static long copyFile1(File srcFile, File destDir, String newFileName) {
    long copySizes = 0;
    if (!srcFile.exists()) {
    System.out.println("源文件不存在");
    copySizes = -1;
    } else if (!destDir.exists()) {
    System.out.println("目标目录不存在");
    copySizes = -1;
    } else if (newFileName == null) {
    System.out.println("文件名为null");
    copySizes = -1;
    } else {
    try {
    BufferedInputStream bin = new BufferedInputStream(
    new FileInputStream(srcFile));
    BufferedOutputStream bout = new BufferedOutputStream(
    new FileOutputStream(new File(destDir, newFileName)));
    int b = 0, i = 0;
    while ((b = bin.read()) != -1) {
    bout.write(b);
    i++;
    }
    bout.flush();
    bin.close();
    bout.close();
    copySizes = i;

    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    return copySizes;
    }

    /**
    * 复制文件(以超快的速度复制文件)
    *
    * @param srcFile
    * 源文件File
    * @param destDir
    * 目标目录File
    * @param newFileName
    * 新文件名
    * @return 实际复制的字节数,如果文件、目录不存在、文件为null或者发生IO异常,返回-1
    */
    public static long copyFile2(File srcFile, File destDir, String newFileName) {
    long copySizes = 0;
    if (!srcFile.exists()) {
    System.out.println("源文件不存在");
    copySizes = -1;
    } else if (!destDir.exists()) {
    System.out.println("目标目录不存在");
    copySizes = -1;
    } else if (newFileName == null) {
    System.out.println("文件名为null");
    copySizes = -1;
    } else {
    try {
    FileChannel fcin = new FileInputStream(srcFile).getChannel();
    FileChannel fcout = new FileOutputStream(new File(destDir,
    newFileName)).getChannel();
    long size = fcin.size();
    fcin.transferTo(0, fcin.size(), fcout);
    fcin.close();
    fcout.close();
    copySizes = size;
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    return copySizes;
    }

  • 相关阅读:
    关于css兼容性问题及一些常见问题汇总
    CSS3使用transition属性实现过渡效果
    CSS3 画基本图形,圆形、椭圆形、三角形等
    总结30个CSS3选择器
    javascript中call()、apply()的区别
    JavaScript面试技巧之数组的一些不low操作
    详解bootstrap-fileinput文件上传控件的亲身实践
    js控制随机数生成概率代码实例
    jQuery 第十章 工具方法-高级方法 $.ajax() $.Callbacks() .....
    jQuery 第九章 工具方法之插件扩展 $.extend() 和 $.fn.extend()
  • 原文地址:https://www.cnblogs.com/azhqiang/p/3922032.html
Copyright © 2011-2022 走看看