资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

java复制文件的4种方式-创新互联

 1. 使用FileStreams复制

网站设计制作过程拒绝使用模板建站;使用PHP+MYSQL原生开发可交付网站源代码;符合网站优化排名的后台管理系统;做网站、网站建设收费合理;免费进行网站备案等企业网站建设一条龙服务.我们是一家持续稳定运营了十多年的创新互联公司网站建设公司。

  这是最经典的方式将一个文件的内容复制到另一个文件中。 使用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/


名称栏目:java复制文件的4种方式-创新互联
地址分享:http://cdkjz.cn/article/djsgsh.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220