Java NIO文件复制以及与传统IO效率对比
来源:互联网 发布:淘宝海外旗舰店真假 编辑:程序博客网 时间:2024/05/22 01:40
1.demo
package com.ccy.IO;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.nio.ByteBuffer;import java.nio.channels.FileChannel;import org.junit.Test;public class CopyFileByNIO {private static final String PATH = "c:/css.pdf";private static final String DESPATH = "c:/css01.pdf";@Testpublic void copyFile() throws Exception{long start = System.currentTimeMillis();FileInputStream fileInputStream = new FileInputStream(new File(PATH));FileOutputStream fileOutputStream = new FileOutputStream(new File(DESPATH));byte[] buff = new byte[1024];int len = 0;while((len = fileInputStream.read(buff))!=-1){fileOutputStream.write(buff,0,len);fileOutputStream.flush();}fileOutputStream.close();fileOutputStream.close();System.out.println("Java IO spending : " + (System.currentTimeMillis() - start));}@Testpublic void copyFileByNIO() throws Exception{long start = System.currentTimeMillis();FileInputStream inputStream = new FileInputStream(new File(PATH));FileChannel inChannel = inputStream.getChannel();FileOutputStream fileOutputStream = new FileOutputStream(new File(DESPATH));FileChannel outChannel = fileOutputStream.getChannel();ByteBuffer byteBuffer = ByteBuffer.allocateDirect(1024); while (true) {int eof = inChannel.read(byteBuffer);if (eof == -1)break;byteBuffer.flip();outChannel.write(byteBuffer);byteBuffer.clear();}inChannel.close();outChannel.close();System.out.println("Java NIO spending : " + (System.currentTimeMillis() - start));}}
2.结果
Java NIO spending : 2434Java IO spending : 2414从以上结果可以看出,我们无需对文件操作特意使用NIO的api,究其原因是因为FileInputStream 的底层已经是FileChannel 了,所以我们不需要画足添蛇!
更多精彩内容请继续关注我的博客:http://blog.csdn.net/caicongyang
记录与分享,你我共成长 -from caicongyang
0 0
- Java NIO文件复制以及与传统IO效率对比
- Java NIO——与传统IO文件复制的效率比较(channel.transferTo、Files.copy 、channel.write)
- java io 复制文件与 nio 复制文件的效率问题
- 【Java IO】NIO复制文件
- NIO与传统IO
- 传统IO与NIO
- NIO与IO进行文件读取耗时对比,最近由于项目上用到IO操作,传统IO性能不佳
- java 的nio与io对比
- JAVA IO和NIO复制文件
- NIO与传统IO区别
- 传统IO与NIO比较
- 使用NIO与BIO复制文件性能对比
- NIO与普通IO文件读写性能对比
- Java NIO 和IO 对比
- java对比IO和NIO的文件读写性能测试
- java NIO/IO文件读取+md5校验速度对比
- java nio 传统标准io socket 和nio socket比较与学习
- NIO与传统IO的区别
- Android xml tools 用法 xmlns:tools="http://schemas.android.com/tools"
- C语言 关键字、标识符、注释
- [6]姥爷幽默谈Objective-C-文件操作类NSFileManager,NSFileHandle
- (一〇七)第八章复习题
- (一〇八)第八章编程练习
- Java NIO文件复制以及与传统IO效率对比
- shader遮挡显示
- MySQL学习笔记——Windows下的安装与配置
- HDOJ 1407 测试你是否和LTC水平一样高 就是三个数的平方是否等于一个数
- HDU:1879 继续畅通工程(kruskal)
- p243 第六题 (不完整)
- 简易在线投票系统(php)——发布投票页面
- WIFI 信道
- android中关于notification的最新用法