本文章翻译自国外文献,作者水平有限,推荐阅读原文,原文见:http://tutorials.jenkov.com/java-nio/index.html
对于开发者来说Java NIO(New IO)相对于传统Java IO提供了一种不同的方法来处理IO。
Java NIO:Channels and Buffers
标准IO API使用字节流(byte streams)和字符流(character streams)处理IO。在NIO中我们使用channels和buffers。
数据通常从一个channel读到一个buffer中,或者把数据从buffer中写至一个channel中。
Java NIO:Asychronous IO
Java NIO提供异步的IO。例如,一个线程可以从channel中读取数据到一个buffer中,当channel读数据的时候,这个线程可以做
其他事情,一旦数据读完,线程就可以接着处理它。这和从buffer写数据到channel中是一样的。
Java NIO:Selectors
Java NIO 中蕴含了选择器的思想(观察者模式)。一个选择器(观察者)能够监视多个channel中的事件(例如:连接是否打开,
数据是否到达等)。因此,只需要一个线程就可以监视多个channels。