Java中IO和NIO的重要区分,如图:
1、面向流与面向缓冲
IO是面向流的,NIO是面向缓冲区的。
Java IO面向流意味着每次从流中读一个或多个字节,直至读取一切字节,它们没有被缓存在任何地方。
Java NIO的缓冲导向要领略有不同。数据读取到一个它稍后处置惩罚的缓冲区,须要时可在缓冲区中前后挪动。
2、壅塞与非壅塞IO
Java IO的种种流是壅塞的。当一个线程挪用read() 或 write()时,该线程被壅塞,直到有一些数据被读取,或数据完整写入。
Java NIO的非壅塞形式,使一个线程从某通道发送要求读取数据,然则它仅能获得现在可用的数据,假如现在没有数据可用时,就什么都不会猎取,而不是坚持线程壅塞,所以直至数据变的能够读取之前,该线程能够继承做其他的事变。
3、挑选器
Java NIO的挑选器许可一个零丁的线程来看管多个输入通道,你能够注册多个通道运用一个挑选器,然后运用一个零丁的线程来“挑选”通道:这些通道里已经有能够处置惩罚的输入,或许挑选已预备写入的通道。这类挑选机制,使得一个零丁的线程很轻易来治理多个通道。
引荐教程:java教程
以上就是java nio与io的区分的细致内容,更多请关注ki4网别的相干文章!