zoukankan      html  css  js  c++  java
  • BIO与NIO的方式实现文件拷贝

    面试题 - 编程实现文件拷贝。(这个题目在笔试的时候经常出现,下面的代码给出了两种实现方案)

    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.nio.ByteBuffer;
    import java.nio.channels.FileChannel;
    
    public final class Main {
    
        private Main() {
            throw new AssertionError();
        }
    
      /**
         * IO文件拷贝
         * @param source 被拷贝的源文件
         * @param target 拷贝出来的目的文件
         * @throws IOException
         */
        public static void fileCopy(String source, String target) throws IOException {
              InputStream in = new FileInputStream(source);
              OutputStream out = new FileOutputStream(target);
              byte[] buffer = new byte[4096];
              int bytesToRead;
              while((bytesToRead = in.read(buffer)) != -1) {
                  out.write(buffer, 0, bytesToRead);
              }
          }
    /**
         * nio实现文件拷贝
         * @param source
         * @param target
         * @throws IOException
         */
         public static void fileCopyNIO(String source, String target) throws IOException {
             FileInputStream in = new FileInputStream(source);
             FileOutputStream out = new FileOutputStream(target);
             FileChannel inChannel = in.getChannel();
             FileChannel outChannel = out.getChannel();
             ByteBuffer buffer = ByteBuffer.allocate(4096);
             while(inChannel.read(buffer) != -1) {
                 buffer.flip();
                 outChannel.write(buffer);
                 buffer.clear();
             }
          }
    
    }

    作者: haifeiWu

    出处: http://www.hchstudio.cn/

    关于作者:专注大后端,分布式,高并发等领域,请多多赐教!

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接

  • 相关阅读:
    VUE动画Javascript钩子不生效问题记录
    vue-resource
    shell脚本 回顾 小练习
    mysql 回顾小练习
    jvm调优(二)
    jvm调优(一)
    性能调优笔记(二)
    性能调优笔记(一)
    mac 下 配置appium +ios真机环境
    pycharm中 unittests in xxxx 运行模式
  • 原文地址:https://www.cnblogs.com/haifeiWu/p/9079598.html
Copyright © 2011-2022 走看看