NIO——簡介

 Java NIO(New IO),也可理解爲Non Blocking IO(非阻塞式IO)。NIO與原來的IO有同樣的作用和目的,但是使用的方式完全不同,NIO支持面向緩衝區的、基於通道的IO操作。NIO相對於IO在對文件的讀寫上更加高效。
 NIO與IO的區別:

IO NIO
面向流(Stream Oriented) 面向緩衝區(Buffer Oriented)
阻塞IO(Blocking IO) 非阻塞IO(Non Blocking IO)
- 選擇器(Selectors)

 注:阻塞和非阻塞是針對於網絡IO而言的,即Socket。

 傳統的IO是單向的,基於流(Stream)的,傳輸的是字節數據,即byte[]:
在這裏插入圖片描述
 NIO是雙向的,基於通道(Channel)的。通過通道建立連接,然後操作緩衝區傳輸數據和對數據進行處理。通道相當於鐵路,緩衝區相當於火車,光有通道是不能完成數據傳輸的,還得有緩衝區,緩衝區可以在通道中雙向傳輸數據:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章