温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java复制文件的4种方式

发布时间:2020-08-10 05:02:48 来源:ITPUB博客 阅读:157 作者:ii_chengzi 栏目:web开发

 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复制文件的4种方式


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

  }

详情更多了解:http://shenzhen.offcn.com/

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI