编程实现文件拷贝

简介: 面试题 - 编程实现文件拷贝。(这个题目在笔试的时候经常出现,下面的代码给出了两种实现方案)import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.Out

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

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();
         }
      }

}
目录
相关文章
|
7月前
|
定位技术 Python
Python对比两个文件夹中子文件夹或文件的差异并查漏补缺
Python对比两个文件夹中子文件夹或文件的差异并查漏补缺
|
7月前
|
存储 C#
【Untiy 3D】C#中文件夹与读写文件操作详解(附测试代码 超详细)
【Untiy 3D】C#中文件夹与读写文件操作详解(附测试代码 超详细)
77 0
|
算法 编译器 C语言
算法小白的心得笔记:分清楚执行程序和动态链接库的编译方式。
-fPIC 选项:这个选项告诉编译器生成位置无关代码(Position Independent Code)。这种代码同样可以在内存的任何位置执行,因为它使用的是相对地址而不是绝对地址。这对于动态库是必要的,因为动态库在被加载时,其在内存中的位置是不确定的。
50 0
|
自然语言处理 Linux C语言
C语言代码到可执行文件的过程
我们写好的代码是不能直接运行的,想要运行需要预编译、编译、汇编、链接四大步骤变成可执行目标文件,本文将简单介绍这四大步骤。
|
存储 自然语言处理 IDE
【C进阶】——我们写的代码是如何一步步变成可执行程序(.EXE)的?
【C进阶】——我们写的代码是如何一步步变成可执行程序(.EXE)的?
642 0
|
C语言
嵌入式(十四)——Makefile编写及多级目录
嵌入式(十四)——Makefile编写及多级目录
502 0
嵌入式(十四)——Makefile编写及多级目录
如何用VS2017生成可执行文件
如何用VS2017生成可执行文件
如何用VS2017生成可执行文件
|
Python
【实用小脚本】Python实现文件/目录的复制
【实用小脚本】Python实现文件/目录的复制
183 0
文件拷贝功能java实现
文件拷贝功能java实现
111 0