• 111861

    文章

  • 803

    评论

  • 12

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

nio 拷贝文件

撸了今年阿里、腾讯和美团的面试,我有一个重要发现.......>>

nio的拷贝文件大概能比io拷贝文件快1倍左右

import java.io.*;
import java.nio.channels.FileChannel;

/**
 * @author hui
 * @date 2019/6/12
 */
public class IOUtil {

    public static void fileCopyWithFileChannel( FileInputStream fileInputStream,FileOutputStream fileOutputStream) {
        FileChannel fileChannelInput = null;
        FileChannel fileChannelOutput = null;
        try {
            // 得到fileInputStream的文件通道
            fileChannelInput = fileInputStream.getChannel();
            // 得到fileOutputStream的文件通道
            fileChannelOutput = fileOutputStream.getChannel();
            // 将fileChannelInput通道的数据,写入到fileChannelOutput通道
            fileChannelInput.transferTo(0, fileChannelInput.size(), fileChannelOutput);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    /**
     * 用filechannel进行文件复制
     *
     * @param fromFile
     *            源文件
     * @param toFile
     *            目标文件
     */
    public static void fileCopyWithFileChannel(File fromFile, File toFile) {
        FileInputStream fileInputStream = null;
        FileOutputStream fileOutputStream = null;
        try {
            fileInputStream=new FileInputStream(fromFile);
            fileOutputStream=new FileOutputStream(toFile);
            fileCopyWithFileChannel(fileInputStream, fileOutputStream);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }finally {
            IOUtil.close(fileOutputStream);
            IOUtil.close(fileInputStream);
        }

    }


    public static void close(Closeable closeable){
        if(closeable != null){
            try {
                closeable.close();
            } catch (IOException e) {
               e.printStackTrace();
            }
        }
    }

}

参考:https://blog.csdn.net/stalin_/article/details/80352132


695856371Web网页设计师②群 | 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

0条评论

Loading...


自定义皮肤 主体内容背景
打开支付宝扫码付款购买视频教程
遇到问题联系客服QQ:419400980
注册梁钟霖个人博客