Java NIO和IO的区别
下表总结了Java NIO和IO之间的主要差别,我会更详细地描述表中每部分的差异。Java NIO和IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。Java NIO的缓冲导向方法略有不同。该线程在此期间不能再干任何事情了。Java NIO的非阻塞模式,使一个线程从某通道发送请求读取数据,但是它仅能得到目前可用的数据,如果目前没有数据可用时,就什么都不会获取。当然,使用NIO的API调用时看起来与使用IO时有所不同,但这并不意外,因为并不是仅从一个InputStream逐字节读取,而是数据必须先读入缓冲区再处理。使用纯粹的NIO设计相较IO设计,数据处理也受到影响。换句话说,如果缓冲区准备好被处理,那么表示缓冲区满了。这是不可能的,但却是需要注意的又一问题。
用户评论