通道(Channel)
channel边读边写
package nio; import java.io.FileInputStream; import java.io.FileOutputStream; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; public class ChannelTest { public static void main(String[] args) throws Exception{ ByteBuffer buffer = ByteBuffer.allocate(10);//开辟10个缓冲区 //读文件 FileInputStream in = new FileInputStream("F:\\1.txt"); FileChannel inChannel = in.getChannel(); //写文件 FileOutputStream out = new FileOutputStream("F:\\2.txt"); FileChannel outChannel = out.getChannel(); String str = "12345";//初始化信息 buffer.put(str.getBytes());//把初始化信息放入缓冲区 int temp = 0; while((temp=inChannel.read(buffer))!=-1) {//如果还有多余的缓冲区则继续读取直到缓冲区满 buffer.flip();//每次缓冲区重置(通过改变position=0),必须把内容展示出来 outChannel.write(buffer);//写入通道 buffer.clear();//每次必须清空缓冲区,否则while循环每次 read读取的时候的缓冲区已满,read不会再读取新内容,陷入死循环 } inChannel.close(); in.close(); outChannel.close(); out.close(); } private static void printInfo(ByteBuffer buffer) { while(buffer.hasRemaining()) { System.out.print((char)buffer.get()+"、"); } System.out.println(); } }
MappedByteBuffer(内存映射流)
代码:
package nio; import java.io.FileInputStream; import java.nio.ByteBuffer; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; public class MappedByteBufferTest { public static void main(String[] args) throws Exception{ //读文件 FileInputStream in = new FileInputStream("F:\\1.txt"); FileChannel inChannel = in.getChannel(); //开辟内存通道,只读模式,大小为文件大小,MappedByteBuffer只为MapMode.READ_ONLY,如果要操作写模式太危险 MappedByteBuffer mappedByteBuffer = inChannel.map(FileChannel.MapMode.READ_ONLY, 0, in.available()); printInfo(mappedByteBuffer); inChannel.close(); in.close(); } private static void printInfo(ByteBuffer buffer) { while(buffer.hasRemaining()) { System.out.print((char)buffer.get()+"、"); } System.out.println(); } }
相关推荐
java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现...
java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java...
Java NIO系列教程(一) Java NIO 概述 Java NIO系列教程(二) Channel Java NIO系列教程(三) Buffer Java NIO系列教程(四) Scatter/Gather Java NIO系列教程(五) 通道之间的数据传输 Java NIO系列教程(六)...
java nio 实现socketjava nio 实现socketjava nio 实现socketjava nio 实现socketjava nio 实现socket
Java NIO 深入探讨了 1.4 版的 I/O 新特性,并告诉您如何使用这些特性来极大地提升您所写的 Java 代码的执行效率。这本小册子就程序员所面临的有代表性的 I/O 问题作了详尽阐述,并讲解了 如何才能充分利用新的 I/O ...
Java NIO英文高清原版
Java IO NIO and NIO 2 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn...
java_nio学习文档
Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据...
讲解了 JavaIO 与 JAVA NIO区别,JAVA NIO设计理念,以及JDK中java NIO中语法的使用
java nio2, Pro Java 7 NIO2
Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式。 Java NIO: Channels and Buffers(通道和缓冲区) 标准的IO基于字节流和字符流进行操作的,...
Java NIO,Ron Hitchens 著,中文版 裴小星 译,Pro Java 7 NIO.2,Anghel Leonard 著,pdf文字版带书签,无安全限制
Java+NIO
java NIO.zip
java NIO详细教程,包括使用背景,实现原理,代码实现
Java IO NIO and NIO 2 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
Java_NIO类库Selector机制解析.docJava_NIO类库Selector机制解析.docJava_NIO类库Selector机制解析.docJava_NIO类库Selector机制解析.doc
Java.NIO资源下载资源下载
简单的用Java的NIO读取文件的程序,给大家参考。