nio教程
Razera
热爱技术,欢迎交流
展开
-
Java NIO 教程(一)概述
一. NIO 核心组成: Channels 定义:Channel 有点象流。 数据可以从Channel读到Buffer中,也可以从Buffer 写到Channel中,nio从channel开始 实现: FileChannel SocketChannel ServerSocketChannel DatagramChannel Buffers 作用:和...原创 2018-08-14 17:37:58 · 161 阅读 · 0 评论 -
Java NIO 教程(二)Channel
一. Channel概述 作用:Channel表示IO源与目标打开的连接。Channel类似于传统的"流",只不过Channel本身不能直接访问数据,Channel只能与Buffer进行交互。 与传统IO流比较: 传统的IO流:CPU处理IO,性能损耗太大,读写单向的 Channel:不需要向CPU申请权限,专门用于IO,读写可以双向,可以异步读写 ...原创 2018-08-14 17:53:52 · 162 阅读 · 0 评论 -
Java NIO 教程(三)Buffer
一. Buffer概述 作用:NIO中的Buffer用于和NIO通道进行交互。如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的。缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO。 二. 基本用法 步骤: 写入数据到Buffer 第一种:从channel中写入数据:channel.read(buffer) 第二种:通过Buffer.put()...原创 2018-08-15 10:48:39 · 152 阅读 · 0 评论 -
Java NIO 教程(四)Selector
一. Selector概述 作用:Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个channel,从而管理多个网络连接。 二. 用法 步骤 创建Selector 向Selector注册通道,获取返回的SelectionKey 通过Selector选择通道 通过selec...原创 2018-08-15 15:58:16 · 198 阅读 · 0 评论 -
Java NIO 教程(五)Scatter/Gather
一. Scatter/Gather概述 作用: 描述从Channel中读取或者写入到Channel的操作 定义: Scatter(分散):将Channel数据读入buffer的时候,Channel将其中的数据分散(Scatter)到多个buffer中 Gather(聚集):将buffer数据写入Channel的时候,Channel将多个buffer数据聚集(Gather)后发送给Chan...原创 2018-08-16 10:13:08 · 191 阅读 · 0 评论 -
Java NIO 教程(六)Pipe
一. Pipe概述 作用:Pipe是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。 图示: 二. 用法 步骤: 创建Pipe对象 向Pipe中写数据:sinkChannel.write() 从Pipe中读数据:sourceChannel.read() 实现: //1.通过Pipe.op...原创 2018-08-16 12:03:17 · 174 阅读 · 0 评论 -
Java NIO 教程(七)Path
一. Path概述 作用:用来表示文件系统的路径。可以指向文件或文件夹 分类: 绝对路径 相对路径 二. 用法 创建path实例 import java.nio.file.Path; import java.nio.file.Paths; public class PathExample { public static void main(String[] ...原创 2018-08-16 14:08:50 · 190 阅读 · 0 评论