`

NIO类库关系图解

    博客分类:
  • Java
 
阅读更多

下面这张图给出了nio类库的各个类之间的关系,这样你就能知道该怎样移动和转换数据了。举例来说,如果你想把byte数组写进文件,你得先用ByteBuffer.wrap( )方法把这个byte数组wrap成buffer,再用getChannel( )在FileOutputStream上打开一个channel,然后才能用ByteBuffer把数据写入FileChannel。

 
注意,ByteBuffer是往channel里读写数据的唯一途径,而且你只能创建这一种byte基本类型的缓冲器ByteBuffer,其余基本类型的缓冲器要用"as" 方法来获取 。另外你不能把基本类型buffer转换成ByteBuffer ,不过你可以用view buffer往ByteBuffer里读写基本类型数据 ,所以这实际上也不是什么限制了。

另外,视图是一种逻辑上的概念,通过视图操作实质上就是对ByteBuffer的操作,就像通过Iterator操作List一样。虽然我们可以用wrap() 直接把char数组转换成CharBuffer,但实际上它还是一个ByteBuffer,而CharBuffer只是它的view。由此可知,我们操控的对象永远都是ByteBuffer,因为只有它才能往channel里读写数据 ,其他基本类型数据缓冲器原理一样。

  • 大小: 208.2 KB
分享到:
评论

相关推荐

    Java-NIO类库Selector机制解析.docx

    Java NIO(New I/O)类库是Java 1.4版本以后引入的新一代I/O机制,相比传统的I/O机制,NIO提供了高效、异步、多路复用的I/O操作模式。Selector机制是NIO类库中的一种核心机制,用于实现多个异步I/O操作的集中管理。 ...

    Java_NIO类库Selector机制解析.doc

    Java_NIO类库Selector机制解析.docJava_NIO类库Selector机制解析.docJava_NIO类库Selector机制解析.docJava_NIO类库Selector机制解析.doc

    android http与https本地代理NIO类库

    源码KissProxy,这个源码是一个基于android http与https的本地代理NIO类库,也是一款基于android 的本地代理NIO类库,希望能够帮到一些需要的朋友,Android源码频道。 特性: 1、简洁的API; 2、基于Java NIO; ...

    nio.zip_NIO_NewIO_NIO.c_java NIO chm_java nio

    在这个文档中,你可以找到关于Java NIO类库的详细说明,例如`FileChannel`用于文件操作,`SocketChannel`和`ServerSocketChannel`用于网络通信,`ByteBuffer`作为最常用的缓冲区类型,以及`Selector`的使用方法等。...

    netty权威文档

    为什么不直接基于JDK的NIO类库编程而选择Netty?如何全面系统地掌握Netty,进行Netty NIO开发、Netty编解码开发、Netty多协议开发?如何通过对Netty源码的学习获得更深入地知识?掌握了Netty后,如何将其应用到实际架构...

    总结Netty(RPC高性能之道)原理剖析.docx

    Netty是一个基于JAVA NIO类库的异步通信框架,用于创建异步非阻塞、高性能、高可靠性和高可定制性的网络客户端和服务器端。Netty的主要特点包括异步、非阻塞、基于事件驱动的NIO框架,支持多种传输层通信协议,包括...

    Java类库大全

    5. **数据库操作**:JDBC是Java连接数据库的标准接口,而Hibernate和MyBatis提供了对象关系映射(ORM)功能,使得开发者可以更方便地操作数据库。 6. **JSON处理**:Jackson和Gson提供了JSON序列化和反序列化的功能...

    java NIO.zip

    Java NIO,全称为Non-Blocking Input/Output(非阻塞输入/输出),是Java标准库提供的一种替代传统的I/O模型的新技术。自Java 1.4版本引入NIO后,它为Java开发者提供了更高效的数据传输方式,尤其是在处理大量并发...

    JAVA2 SDK 类库

    7. **java.nio**:新I/O(New IO)包,提供了非阻塞I/O操作,提高了I/O性能。 8. **java.security**:包含安全相关的类和接口,如加密、证书、访问控制等。 9. **javax.xml**:处理XML文档的API,如DOM、SAX解析器...

    java 2类库3

    数据库连接方面,`java.sql`包提供了与关系型数据库交互的API,包括`Connection`、`Statement`、`ResultSet`等,使得开发者能够编写SQL语句来存取数据。 在GUI编程中,`java.awt`和`javax.swing`包提供了图形用户...

    JavaNIO chm帮助文档

    Java NIO系列教程(一) Java NIO 概述 Java NIO系列教程(二) Channel Java NIO系列教程(三) Buffer Java NIO系列教程(四) Scatter/Gather Java NIO系列教程(五) 通道之间的数据传输 Java NIO系列教程(六)...

    Java NIO英文高清原版

    Java NIO,全称为Non-Blocking Input/Output(非阻塞输入/输出),是Java平台中用于替代标准I/O(BIO)模型的一种新机制。NIO在Java 1.4版本引入,提供了更高效的数据处理和通道通信方式,特别适用于高并发、大数据...

    Java2 类库--技术手册

    2. **IO/NIO**:`java.io`包提供了传统的输入/输出流,如`FileInputStream`和`PrintWriter`,而`java.nio`包则引入了非阻塞I/O,提供更高效的数据传输能力。 3. **网络编程**:`java.net`包包含了网络通信所需的...

    java常用类库java常用类库java常用类库

    除此之外,Java还提供了其他类库,如`java.text`用于文本格式化,`java.sql`用于数据库连接,`java.awt`和`javax.swing`用于图形用户界面(GUI)编程,以及`java.nio`包提供的非阻塞I/O操作。 总的来说,Java常用...

    NIO 入门.chm,NIO 入门.chm

    **NIO(New Input/Output)是Java编程语言中用于替代标准I/O(BIO,Blocking I/O)的一组API,它提供了非阻塞式的I/O操作方式,极大地提升了Java在处理I/O密集型应用时的性能。NIO在Java 1.4版本中被引入,之后在...

    基于nio实现的多文件上传源码

    在Java编程领域,NIO(New IO)是一个重要的特性,它是Java 1.4版本引入的,用于替代标准的IO API。NIO提供了一种非阻塞I/O操作的方式,特别适用于处理大量的并发连接,例如在文件传输、网络通信等场景。本主题...

    从类库看设计模式

    Adapter模式,用于使不兼容的接口可以一起工作,例如,`java.io.InputStreamReader`和`java.nio.channels.ReadableByteChannel`之间的转换。 另外,MVC(Model-View-Controller)模式虽然不在GOF的23种模式中,但也...

    javaSE 类库查询手册

    同时,NIO(非阻塞I/O)也是现代Java编程中不可忽视的一部分。 4. **多线程**:学习如何创建和管理线程,包括同步机制(如synchronized关键字、wait()、notify()和notifyAll()方法)、线程池(ExecutorService)...

Global site tag (gtag.js) - Google Analytics