ITPub博客

首页 > 应用开发 > Javascript >  java复制文件的4种方式

 java复制文件的4种方式

Javascript 作者:ii_chengzi 时间:2018-10-15 11:20:04 0 删除 编辑

 1. 使用FileStreams复制

  这是最经典的方式将一个文件的内容复制到另一个文件中。 使用FileInputStream读取文件A的字节,使用FileOutputStream写入到文件B。

  这是第一个方法的代码:

  private static void copyFileUsingFileStreams(File source, File dest)

  throws IOException {

  InputStream input = null;

  OutputStream output = null;

  try {

  input = new FileInputStream(source);

  output = new FileOutputStream(dest);

  byte[] buf = new byte[1024];

  int bytesRead;

  while ((bytesRead = input.read(buf)) > 0) {

  output.write(buf, 0, bytesRead);

  }

  } finally {

  input.close();

  output.close();

  }

  }

  正如你所看到的我们执行几个读和写操作try的数据,所以这应该是一个低效率的,下一个方法我们将看到新的方式。

  2. 使用FileChannel复制

  Java NIO包括transferFrom方法,根据文档应该比文件流复制的速度更快。

  这是第二种方法的代码:

  private static void copyFileUsingFileChannels(File source, File dest) throws IOException {

  FileChannel inputChannel = null;

  FileChannel outputChannel = null;

  try {

  inputChannel = new FileInputStream(source).getChannel();

  outputChannel = new FileOutputStream(dest).getChannel();

  outputChannel.transferFrom(inputChannel, 0, inputChannel.size());

  } finally {

  inputChannel.close();

  outputChannel.close();

  }

  }

  

广州Java培训


  3. 使用Commons IO复制

  Apache Commons IO提供拷贝文件方法在其FileUtils类,可用于复制一个文件到另一个地方。它非常方便使用Apache Commons FileUtils类时,您已经使用您的项目。

  基本上,这个类使用Java NIO FileChannel内部。

  这是第三种方法的代码:

  private static void copyFileUsingApacheCommonsIO(File source, File dest)

  throws IOException {

  FileUtils.copyFile(source, dest);

  }

  4. 使用Java7的Files类复制

  如果你有一些经验在Java 7中你可能会知道,可以使用复制方法的Files类文件,从一个文件复制到另一个文件。

  这是第四个方法的代码:

  private static void copyFileUsingJava7Files(File source, File dest)

  throws IOException {

  Files.copy(source.toPath(), dest.toPath());

  }

详情更多了解:

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31543790/viewspace-2216360/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-06-26

  • 博文量
    264
  • 访问量
    232414