随笔分类 -  NIO编程

摘要:分散读取与聚集写入 分散读取(scattering Reads):将通道中的数据分散到多个缓冲区中 聚集写入(gathering Writes):将多个缓冲区的数据聚集到通道中 分散读取 聚集写入 阅读全文
posted @ 2018-11-08 23:37 toov5 阅读(562) 评论(0) 推荐(0) 编辑
摘要:通道表示打开到 IO 设备(例如:文件、套接字)的连接。若需要使用 NIO 系统,需要获取用于连接 IO 设备的通道以及用于容纳数据的缓冲区。然后操作缓冲区,对数据进行处理。Channel 负责传输, Buffer 负责存储。通道是由 java.nio.channels 包定义的。 Channel 阅读全文
posted @ 2018-11-08 22:59 toov5 阅读(718) 评论(0) 推荐(0) 编辑
摘要:直接缓冲区与非直接缓冲区别 非直接缓冲区:通过 allocate() 方法分配缓冲区,将缓冲区建立在 JVM 的内存中 上图读的过程: 读物理磁盘文件时候,先到物理内存读到,然后拷贝到jvm内存中。 程序去jvm读取。 从物理空间拷贝到jvm内存空间,效率慢。 写的过程: 先写到jvm内存,jvm拷 阅读全文
posted @ 2018-11-08 21:23 toov5 阅读(585) 评论(0) 推荐(0) 编辑
摘要:位置(position):下一个要读取或写入的数据的索引。缓冲区的位置不能为负,并且不能大于其限制(limit)。 标记(mark)与重置(reset):标记是一个索引,通过Buffer中的mark()方法指定Buffer中一个特定的position,之后可以通过调用reset()方法恢复到这个po 阅读全文
posted @ 2018-11-08 20:52 toov5 阅读(319) 评论(0) 推荐(0) 编辑
摘要:缓冲区 存放要读取的数据 缓冲区 和 通道 配合使用 一个用于特定基本数据类行的容器。有java.nio包定义的,所有缓冲区都是抽象类Buffer的子类。 Java NIO中的Buffer主要用于与NIO通道进行交互,数据是从通道读入到缓冲区,从缓冲区写入通道中的。 Buffer就像一个数组,可以保 阅读全文
posted @ 2018-11-08 19:17 toov5 阅读(1536) 评论(0) 推荐(0) 编辑
摘要:NIO概述 什么是NIO? Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式。 Java NIO: Channels and Buffers(通道和缓冲区) 标准的IO基于字节流和字符 阅读全文
posted @ 2018-11-08 18:04 toov5 阅读(209) 评论(0) 推荐(0) 编辑