JAVA-NIO
kris234seth
这个作者很懒,什么都没留下…
展开
-
二、Nio之Channel
1、Java NIO 的通道类似流,但又有些不同: 既可以从通道中读取数据,又可以写数据到通道。但流的读写通常是单向的。 通道可以异步地读写。 通道中的数据总是要先读到一个 Buffer,或者总是要从一个 Buffer 中写入。 2、Channel 的实现 这些是 Java NIO 中最重要的通道的实现: FileChannel DatagramCha原创 2016-11-09 14:40:14 · 5835 阅读 · 0 评论 -
九、Nio之DatagramChannel
Java NIO 中的 DatagramChannel 是一个能收发 UDP 包的通道。 因为 UDP 是无连接的网络协议,所以不能像其它通道那样读取和写入。它发送和接收的是数据包。打开 DatagramChannel下面是 DatagramChannel 的打开方式:DatagramChannel channel = DatagramChannel.open();ch原创 2016-11-28 11:24:05 · 460 阅读 · 0 评论 -
八、Nio之ServerSocketChannel
Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样。ServerSocketChannel 类在 java.nio.channels 包中。打开 ServerSocketChannel通过调用 ServerSocketChannel.open() 方法来打开 ServerSocketCha原创 2016-11-28 11:21:06 · 400 阅读 · 0 评论 -
三、Nio之Buffer
Java NIO 中的 Buffer 用于和 NIO 通道进行交互。 如你所知, 数据是从通道读入缓冲区, 从缓冲区写入到通道中的。 缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成 NIO Buffer 对象,并提供了 一组方法,用来方便的访问该块内存。 一、Buffer的基本用法: 使用 Buffer 读写数据一般遵循以下四个步骤: 1. 写入数据到 Bu原创 2016-11-15 15:46:03 · 295 阅读 · 0 评论 -
七、Nio之SocketChannel
Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道。 可以通过以下2种方式创建SocketChannel:1. 打开一个 SocketChannel 并连接到互联网上的某台服务器。2. 一个新连接到达 ServerSocketChannel 时,会创建一个 SocketChannel。原创 2016-11-18 14:45:05 · 426 阅读 · 0 评论 -
六、Nio之FileChannel
Java NIO 中的 FileChannel 是一个连接到文件的通道。可以通过文件通道读写文件。 FileChannel 无法设置为非阻塞模式,它总是运行在阻塞模式下。 打开 FileChannel: 在使用FileChannel之前, 必须先打开它。 但是, 我们无法直接打开一个FileChannel, 需要通过使用一个InputStream、 OutputStream 或 Rando原创 2016-11-18 14:22:43 · 331 阅读 · 0 评论 -
五、Nio之通道之间的数据传输
在 Java NIO 中,如果两个通道中有一个是 FileChannel,那你可以直接将数据从一个 channel(译者注:channel 中文常译作通道)传输到另外一个 channel。 transferFrom(): FileChannel 的 transferFrom()方法可以将数据从源通道传输到 FileChannel 中(译者注:这个方法在 JDK 文档中 的解释为将字节从给定原创 2016-11-17 15:37:02 · 530 阅读 · 0 评论 -
四、Nio之Scatter(分散)/Gather(聚集)
Java NIO 开始支持 scatter/gather, scatter/gather 用于描述从 Channel 中读取或者写入到 Channel 的操作。 分散(scatter)从 Channel 中读取是指在读操作时将读取的数据写入多个 buffer 中。因此,Channel 将从 Channel中读取的数据 分散 (scatter)到多个 Buffer 中。 聚集(gather原创 2016-11-16 16:27:34 · 473 阅读 · 0 评论 -
一、Nio概述
Java NIO 由以下几个核心部分组成: Channels Buffers Selectors 虽然 Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Selector 构成了核心的 API。 其它组件,如 Pipe 和 FileLock,只不过是与三个核心原创 2016-11-09 10:21:14 · 388 阅读 · 0 评论 -
十、Nio之Selector
Selector(选择器)是 Java NIO 中能够检测一到多个 NIO 通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个 channel,从而管理多个网络连接。为什么使用 Selector?仅用单个线程来处理多个 Channels 的好处是,只需要更少的线程来处理通道。事实上,可以只用一个线程处理所有的通道。 对于操作系统来说, 线程之原创 2016-11-28 14:09:42 · 434 阅读 · 0 评论