package com.bxf.NIOTest;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class allocateDirectTest {
public allocateDirectTest(){}
String sfin = "K:\\tmp\\FileIn.txt";
String sfou = "K:\\tmp\\FileOut.txt";
String sfou2 = "K:\\tmp\\FileOut2.txt";
public void copyFileByAllocDir() throws Exception{
FileInputStream fin = new FileInputStream(sfin);
FileChannel fcin = fin.getChannel();
FileOutputStream fout = new FileOutputStream(sfou);
FileChannel fcout = fout.getChannel();
ByteBuffer buffer = ByteBuffer.allocateDirect(1024);
long startTime = System.currentTimeMillis();
while(true){
buffer.clear();
int r = fcin.read(buffer);
if(r == -1)
break;
buffer.flip();
fcout.write(buffer);
}
long endTime = System.currentTimeMillis();
System.out.println("By copyFileByAllocDir Use time : " + (endTime - startTime));
}
// 经测试使用ByteBuffer.allocateDirect(1024)的确要比使用
// ByteBuffer.allocate(1024)快!
public void copyFileByAlloc() throws Exception{
FileInputStream fin = new FileInputStream(sfin);
FileChannel fcin = fin.getChannel();
FileOutputStream fout2 = new FileOutputStream(sfou2);
FileChannel fcout2 = fout2.getChannel();
ByteBuffer buffer = ByteBuffer.allocate(1024);
long startTime = System.currentTimeMillis();
while(true){
buffer.clear();
int r = fcin.read(buffer);
if(r == -1)
break;
buffer.flip();
fcout2.write(buffer);
}
long endTime = System.currentTimeMillis();
System.out.println("By copyFileByAlloc Use time : " + (endTime - startTime));
}
}
// 第一次测试结果:
// By copyFileByAllocDir Use time : 50
// By copyFileByAlloc Use time : 69
// 第二次测试结果:
// By copyFileByAllocDir Use time : 52
// By copyFileByAlloc Use time : 58
如果将buffer调大到:100*1024,差距就更明显了:
//By copyFileByAllocDir Use time : 3
//By copyFileByAlloc Use time : 68
//By copyFileByAllocDir Use time : 2
//By copyFileByAlloc Use time : 60
分享到:
相关推荐
赠送jar包:xnio-nio-3.8.0.Final.jar; 赠送原API文档:xnio-nio-3.8.0.Final-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。
赠送jar包:xnio-nio-3.8.0.Final.jar; 赠送原API文档:xnio-nio-3.8.0.Final-javadoc.jar; 赠送源代码:xnio-nio-3.8.0.Final-sources...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
赠送jar包:xnio-nio-3.8.4.Final.jar; 赠送原API文档:xnio-nio-3.8.4.Final-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。
赠送jar包:xnio-nio-3.8.4.Final.jar; 赠送原API文档:xnio-nio-3.8.4.Final-javadoc.jar; 赠送源代码:xnio-nio-3.8.4.Final-sources...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
使用nio byteBuffer 实现按行读取文件(大文件) 在window/linux/macOS上均测试通过 对于中文乱码也已处理成功 完整注释,可随需求更改 有问题请邮件:mly610865580@126.com
用Java实现非阻塞通信 ,用ServerSocket和Socket来编写服务器程序和客户程序,是Java网络编程的最基本的方式。 httpcore-nio-4.3.jar包
Java I/O, NIO, and NIO.2 is a power-packed book that accelerates your mastery of Java's various I/O APIs. In this book, you'll learn about classic I/O APIs (File, RandomAccessFile, the stream classes ...
这是一本介绍java io以及nio相关知识的书,书中对知识的讲解通俗易懂,是学习java nio以及复习java io相关知识的必备书籍。注意:本书为英文版!!!
New I/O (NIO), and NIO.2 categories. You learn what each category offers in terms of its capabilities, and you also learn about concepts such as paths and Direct Memory Access. Chapters 2 through 5 ...
java NIO.zip
基于Java NIO实现五子棋游戏.zip基于Java NIO实现五子棋游戏.zip 基于Java NIO实现五子棋游戏.zip基于Java NIO实现五子棋游戏.zip 基于Java NIO实现五子棋游戏.zip基于Java NIO实现五子棋游戏.zip 基于Java NIO实现...
NIO项目源码.zip
Apress.Pro.Java.7.NIO.2.2011
Java NIO 中文版.rar
NIO入门.chm NIO入门.chm NIO入门.chm
java运行依赖jar包
linux nio和java.zip
Pro Java 7 NIO.2.pdf,2011 by Anghel Leonard
httpcore-nio-4.4.9.jar