
Java NIO
文章平均质量分 75
松岛的风
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java NIO 教程
Java NIO是一组可以用来替代标准IO和网络API的一组IO API。Java NIO提供了一种不同于标准IO的使用方式。Java NIO:通道和缓冲区在标准IO中我们使用字节流和字符流。在NIO中我们使用通道和缓冲区。数据总是通过通道向缓冲区写入或读出。Java NIO:非阻塞IOJava NIO允许你使用非阻塞IO。比如,一个线程可以请求通道从缓冲区中读取数翻译 2014-12-24 17:13:40 · 426 阅读 · 0 评论 -
Java NIO 概述
Java NIO主要包括以下核心组件:通道缓冲区选择器 Java NIO包含比以上更多的类和组件,但是通道,缓冲区和选择器是核心的API。在我看来,其他的组件,例如Pipe和FileLock是被用来连接这些核心组件的工具类。因此,在这部分我们主要这三个组件。其他组件我们在其他的章节进行讲述。Channels和Buffer通常,在NIO中的所有IO操作从Channel翻译 2014-12-25 15:35:03 · 558 阅读 · 0 评论 -
Java NIO 缓冲区
Java NIO中的Buffer及其子类用来跟Channel以及子类交互。如你所了解的,数据通过通道写入缓冲区,或者从缓冲区读取。一个Buffer基本上就是一块你可以读写数据的内存。这块内存被包装成了Buffer对象,并且提供了一系列方法帮助你更好的操作这块内存。Buffer的基本用法使用Buffer读取数据通常分为如下4步:将数据写入Buffer调用buffer.flip翻译 2014-12-27 09:40:27 · 585 阅读 · 0 评论 -
Java NIO 通道
Java NIO中通道类似于流,但又存在一些差异:你可以向一个通道读或者写,但是刘是单向的。通道可以被异步读写。通道总是个一个缓冲区关联。像上面提到的,你可以通过一个通道向缓冲区写入数据,也可以通过通道从一个缓冲区读取数据:Java NIO: Channels read data into Buffers, and Buffers write data into C翻译 2014-12-26 16:45:39 · 471 阅读 · 0 评论 -
Java NIO 分散/聚集
Java NIO内部提供了对scatter/gather的支持。Scatter/Gather是用来想channel写数据或从channel读数据的一种观点。从一个通道分散(scattering)读是一个向一个或多个缓冲区读入数据的读操作。因此,将一个通道里的数据分散读入多个缓冲区。向一个通道聚集(gather)写入是一个从一个或多个缓冲区向单个通道写入数据的写操作。因此,将一个或多个缓冲区翻译 2014-12-29 10:32:38 · 687 阅读 · 0 评论 -
Java NIO 通道和通道之间转换
在Java NIO中你可以将数据从一个通道直接转移到另一个通道,如果其中一个通道是FileChannel。在FileChannel类中有transferTo()和transferFrom()方法来实现这种转移。transferFrom()FileChannel.transferFrom()方法可以将数据从一个通道转移到一个特定的FileChannnel。下面是一个简单的示例:Rando翻译 2014-12-30 15:26:40 · 983 阅读 · 0 评论 -
Java NIO 选择器
Selector是Java NIO中的一个组件,可以用来检查一个或多个通道,并确定哪一个通道准备好了读或写。通过这种方式,我们可以使用单个线程管理多个通道或多个网络连接。为什么使用Selector?使用Selector的优势在于你可以使用单个线程处理多个通道。实际上,你仅使用一个线程就可以处理所有的通道。线程切换对操作系统来说代价是昂贵的,并且每个线程在OS中都要占用一定的资源(内存)。因翻译 2014-12-31 14:28:45 · 589 阅读 · 0 评论