iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何通过JAVA NIO通道传输拷贝文件
  • 134
分享到

如何通过JAVA NIO通道传输拷贝文件

2023-06-17 14:06:01 134人浏览 独家记忆
摘要

这篇文章给大家分享的是有关如何通过JAVA NIO通道传输拷贝文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。通过JAVA Nio 通道传输拷贝文件方式一   public&nbs

这篇文章给大家分享的是有关如何通过JAVA NIO通道传输拷贝文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

通过JAVA Nio 通道传输拷贝文件

方式一

   public static void copyFileByChannelTransfer(String sourcePath, String targetPath) {    FileChannel inChannel = null;    FileChannel outChannel = null;    try {      //获取通道      inChannel = FileChannel.open(Paths.get(sourcePath), StandardOpenOption.READ);      outChannel = FileChannel.open(Paths.get(targetPath),StandardOpenOption.WRITE,StandardOpenOption.READ,StandardOpenOption.CREATE);      inChannel.transferTo(0,inChannel.size(),outChannel);    } catch (IOException e) {      e.printStackTrace();    }finally {      //关闭流      try {        if (outChannel != null) {          outChannel.close();        }        if (inChannel != null) {          inChannel.close();        }      } catch (IOException e) {        e.printStackTrace();      }    }  }

方式二

   public static void copyFileByChannelTransfer2(String sourcePath, String targetPath) {    FileInputStream fis = null;    FileOutputStream fos = null;    FileChannel inChannel = null;    FileChannel outChannel = null;    try {      fis = new FileInputStream(sourcePath);      fos = new FileOutputStream(targetPath);      //获取通道      inChannel = fis.getChannel();      outChannel = fos.getChannel();      inChannel.transferTo(0,inChannel.size(),outChannel);    } catch (IOException e) {      e.printStackTrace();    }finally {      //关闭流      try {        if (outChannel != null) {          outChannel.close();        }        if (inChannel != null) {          inChannel.close();        }      } catch (IOException e) {        e.printStackTrace();      }    }  }

使用示例

String source = "e:\\demo\\纵天神帝.txt";    String target = "e:\\demo\\";    long time1 = System.currentTimeMillis();    copyFileByStream(source, target + "1.txt");    System.out.println("通过字节流实现文件的拷贝耗时:" + (System.currentTimeMillis() - time1));    long time2 = System.currentTimeMillis();    copyFileByReaderAndWriter(source, target + "2.txt");    System.out.println("通过字符流实现文件的拷贝耗时:" + (System.currentTimeMillis() - time2));    long time3 = System.currentTimeMillis();    copyFileByBuffered(source, target + "3.txt");    System.out.println("通过字节缓冲流实现文件的拷贝耗时:" + (System.currentTimeMillis() - time3));    long time4 = System.currentTimeMillis();    copyFileByBufferedChar(source, target + "4.txt");    System.out.println("通过字符缓冲流实现文件的拷贝耗时:" + (System.currentTimeMillis() - time4));    long time5 = System.currentTimeMillis();    copyFileByChannel(source, target + "5.txt");    System.out.println("通过JAVA NIO通道(非直接缓冲区)实现文件的拷贝耗时:" + (System.currentTimeMillis() - time5));    long time6 = System.currentTimeMillis();    copyFileByChannelBufferd(source, target + "6.txt");    System.out.println("通过JAVA NIO通道(直接缓冲区)实现文件的拷贝耗时:" + (System.currentTimeMillis() - time6));    long time7 = System.currentTimeMillis();    copyFileByChannelTransfer(source, target + "7.txt");    System.out.println("通过JAVA NIO通道传输实现文件的拷贝耗时:" + (System.currentTimeMillis() - time7));    long time8 = System.currentTimeMillis();    copyFileByChannelTransfer(source, target + "8.txt");    System.out.println("通过JAVA NIO通道传输2实现文件的拷贝耗时:" + (System.currentTimeMillis() - time8));

感谢各位的阅读!关于“如何通过JAVA NIO通道传输拷贝文件”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: 如何通过JAVA NIO通道传输拷贝文件

本文链接: https://www.lsjlt.com/news/289643.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作