java中的NIO是什么?可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
Java NIO(New IO)是從java 1.4版本開始引入的一個新的IO API,可以替代標(biāo)準(zhǔn)的java IO API。
NIO支持面向緩沖區(qū)的、基于通道的IO操作。NIO將以更加高效的方式進(jìn)行文件的讀寫操作。
它支持面向緩沖的,基于通道的I/O操作方法。 隨著JDK 7的推出,NIO系統(tǒng)得到了擴(kuò)展,為文件系統(tǒng)功能和文件處理提供了增強(qiáng)的支持。 由于NIO文件類支持的這些新的功能,NIO被廣泛應(yīng)用于文件處理。
NIO為Java程序員實(shí)現(xiàn)高速I/O,而不使用自定義本機(jī)代碼。 NIO將填充,排放緩沖區(qū)等的時間性I/O活動移回操作系統(tǒng),從而大大提高了操作速度。
Java NIO基本組件如下:
通道和緩沖區(qū):
Java NIO系統(tǒng)的核心在于:通道(Channel)和緩沖區(qū)(Buffer)。 通道表示打開IO設(shè)備(比如文件、套接字等)的連接。若需要使用NIO系統(tǒng),需要獲取用于連接IO設(shè)備的通道以及用于容納數(shù)據(jù)的緩沖區(qū)。然后操作緩沖區(qū)對數(shù)據(jù)進(jìn)行處理。
選擇器(Selectors):Java NIO提供了“選擇器”的概念。這是一個可以用于監(jiān)視多個通道的對象,如數(shù)據(jù)到達(dá),連接打開等。因此,單線程可以監(jiān)視多個通道中的數(shù)據(jù)。
非阻塞I/O(Non-blocking I/O):Java NIO提供非阻塞I/O的功能。這里應(yīng)用程序立即返回任何可用的數(shù)據(jù),應(yīng)用程序應(yīng)該具有池化機(jī)制,以查明是否有更多數(shù)據(jù)準(zhǔn)備就緒。
下面來看看非阻塞I/O的應(yīng)用和操作系統(tǒng)接口:
看完上述內(nèi)容,你們對java中的NIO有進(jìn)一步的了解嗎?如果還想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀。