如何通过JAVA NIO通道传输拷贝文件
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家分享的是有关如何通过JAVA NIO通道传输拷贝文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。通过JAVA NIO 通道传输拷贝文件方式一 /** *
千家信息网最后更新 2026年11月01日如何通过JAVA NIO通道传输拷贝文件
这篇文章给大家分享的是有关如何通过JAVA NIO通道传输拷贝文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
通过JAVA NIO 通道传输拷贝文件
方式一
/** * 通过JAVA NIO 通道传输拷贝文件 * * @param sourcePath 源文件路径 * @param targetPath 目标文件路径 */ 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(); } } }方式二
/** * 通过JAVA NIO 通道传输拷贝文件 * * @param sourcePath 源文件路径 * @param targetPath 目标文件路径 */ 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通道传输拷贝文件"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
文件
拷贝
通道
传输
路径
缓冲
内容
字符
方式
更多
源文件
目标
篇文章
缓冲区
不错
实用
天神
字节
文章
看吧
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
哈尔滨大商圈互联网科技有限公司
互联网科技公司华为
科技互联网政务服务
互联网巨头科技公司
互联网与科技发展
科技类互联网
电子科技大学互联网
赫美联合互联网科技
天下捷融互联网科技
镁科技互联网资讯平台
深圳卡尔迅互联网科技有限公司怎么样
互联网实体化科技化
西安小鹰速贷互联网科技有限公司
互联网行业科技股
玉溪新华互联网科技好不好
高科技互联网套路
普陀区互联网教育科技管理办法
互联网科技机房
绵阳真晨互联网科技有限公司
株洲百竞科技的互联网营销顾问
科技互联网项目
安控科技rtu产品工业互联网
常德市电业局互联网科技部
科技与互联网哪个更好
互联网科技教育视频
互联网科技实习生岗位
互联网科技包装股份有限公司上市
互联网硬科技公司
万物互联网智能科技
玉溪新华互联网科技怎么选