javaNIO
菜鸟=大神
只做一个每天进步一点点的人,加油!
展开
-
Java之NIO
java.nio全称java non-blocking IO(实际上是 new io),是指jdk1.4 及以上版本里提供的新api(New IO) ,为所有的原始类型(boolean类型除外)提供缓存支持的数据容器,使用它可以提供非阻塞式的高伸缩性网络。NIO是为了弥补IO操作的不足而诞生的,NIO的一些新特性有:非阻塞I/O,选择器,缓冲以及管道。管道(Channel),缓冲(Buffer...原创 2018-09-18 20:12:20 · 115 阅读 · 0 评论 -
NIO之Buffer
Java NIO中的Buffer用于和NIO通道进行交互。数据是从通道读入缓冲区,从缓冲区写入到通道中的。缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。Buffer的基本用法四个步骤写入数据到Buffer调用flip()方法从Buffer中读取数据调用clear()方法或者compa...原创 2018-09-19 11:56:29 · 159 阅读 · 0 评论 -
NIO之通道之间的数据传输
dfdfdd原创 2018-09-21 11:39:40 · 339 阅读 · 0 评论 -
NIO之Selector
Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个channel,从而管理多个网络连接。文章目录Selector的用途Selector的创建打开服务器套接字通道向Selector注册通道SelectionKeyinterest集合ready集合Channel + Selector附加的对象...原创 2018-09-21 17:56:32 · 188 阅读 · 0 评论 -
JavaNIO之Pipe
Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。在Java NIO中,包java.nio.channel.pipe用于按顺序读取和写入数据。管道用于确保数据必须以写入管道的相同顺序读取。文章目录原理图创建管道向管道中写入数据从管道中读取数据原理图创建管道使用Pipe.open()方...原创 2018-09-27 15:46:10 · 214 阅读 · 0 评论 -
Java NIO与IO区别
文章目录面向流和面向缓冲阻塞和非阻塞选择器NIO和IO对程序设计的影响API调用数据处理用来处理数据的线程数面向流和面向缓冲NIO和IO之间的一个最大的区别就是,IO是面向流的,而NIO是面向缓冲区的。IO是面向流的,意味着每次从流中读取一个或多个字节,直到读取所有字节,它们没有被缓存在任何地方。此外,流是单向的,它不能前后移动流中的数据。如果需要前后移动从流中读取的数据,则需要把数据缓存...原创 2018-09-27 16:52:33 · 1047 阅读 · 0 评论 -
NIO之Path
Java的Path接口是Java NIO2的一部分,位于java.nio.file包中,全路径为java.nio.file.Path。一个Path实例代表了一个文件系统中的路径。一个路径可以指向一个文件或文件夹。一个路径可以是相对路径(相对于其他路径的文件或文件夹路径)和绝对路径(从根路径开始的全路径)。java.nio.file.Path接口和java.io.File类是相似的,但不完全...原创 2018-09-27 17:37:11 · 808 阅读 · 0 评论 -
NIO之重要概念
文章目录ChannelBufferSelectorJAVA NIO 框架简要设计分析Channel通道,建立在应用程序和操作系统之间的交换事件,传递内容的渠道。一个通道具有一个专属的文件状态描述符。应用程序可以通过通道读取和向操作系统写入数据。所有被Selector选择器注册的通道,只能是继承了SelectableChannel类的子类。ServerSocketChannel:应用服...原创 2018-09-29 08:49:47 · 311 阅读 · 0 评论 -
NIO2 AIO
与NIO不同,在进行读写操作时,只需直接调用API的read()或write方法即可。这两个方法都是异步的。对于读操作而言,当有流可读取时,操作系统会将流中的数据传入read方法的缓冲区,并通知应用程序;对应写操作而言,当操作系统将流写入完毕时,会主动通知应用程序。可以认为:read/write方法都是异步的,完成后会主动调用回调函数。在JDK1.7中,AIO被称为NIO.2,主要在java...原创 2018-09-29 11:33:40 · 466 阅读 · 1 评论