在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>源碼下載>java源碼下載>

關于NIO的概述

大小:0.3 MB 人氣: 2017-09-26 需要積分:1

  一.NIO中的幾個基礎概念

  在NIO中有幾個比較關鍵的概念:Channel(通道),Buffer(緩沖區),Selector(選擇器)。

  首先從Channel說起吧,通道,顧名思義,就是通向什么的道路,為某個提供了渠道。在傳統IO中,我們要讀取一個文件中的內容,通常是像下面這樣讀取的:

  publicclassTest { publicstaticvoidmain(String[] args) throws IOException { File file =newFile( “data.txt”); InputStream inputStream = newFileInputStream(file); byte[] bytes =newbyte[ 1024]; inputStream.read(bytes); inputStream.close(); } }

  這里的InputStream實際上就是為讀取文件提供一個通道的。

  因此可以將NIO 中的Channel同傳統IO中的Stream來類比,但是要注意,傳統IO中,Stream是單向的,比如InputStream只能進行讀取操作,OutputStream只能進行寫操作。而Channel是雙向的,既可用來進行讀操作,又可用來進行寫操作。

  Buffer(緩沖區),是NIO中非常重要的一個東西,在NIO中所有數據的讀和寫都離不開Buffer。比如上面的一段代碼中,讀取的數據時放在byte數組當中,而在NIO中,讀取的數據只能放在Buffer中。同樣地,寫入數據也是先寫入到Buffer中。

  下面介紹一下NIO中最核心的一個東西:Selector。可以說它是NIO中最關鍵的一個部分,Selector的作用就是用來輪詢每個注冊的Channel,一旦發現Channel有注冊的事件發生,便獲取事件然后進行處理。

  比如看下面的這個例子:

  關于NIO的概述

  用單線程處理一個Selector,然后通過Selector.select()方法來獲取到達事件,在獲取了到達事件之后,就可以逐個地對這些事件進行響應處理。

  二.Channel

  在前面已經提到,Channel和傳統IO中的Stream很相似。雖然很相似,但是有很大的區別,主要區別為:通道是雙向的,通過一個Channel既可以進行讀,也可以進行寫;而Stream只能進行單向操作,通過一個Stream只能進行讀或者寫;

  以下是常用的幾種通道:

  - FileChannel

  - SocketChanel

  - ServerSocketChannel

  - DatagramChannel

  通過使用FileChannel可以從文件讀或者向文件寫入數據;通過SocketChannel,以TCP來向網絡連接的兩端讀寫數據;通過ServerSocketChanel能夠監聽客戶端發起的TCP連接,并為每個TCP連接創建一個新的SocketChannel來進行數據讀寫;通過DatagramChannel,以UDP協議來向網絡連接的兩端讀寫數據。

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?
      主站蜘蛛池模板: 亚欧一区 | 加勒比一到三区 | 日本最黄视频 | 国产视频一区二 | ww欧洲ww欧洲视频 | 国内露脸夫妇交换精品 | 日本黄色大片免费观看 | 免费观看a毛片一区二区不卡 | 五月天婷婷亚洲 | 美女网站在线观看视频18 | 亚洲天堂免费观看 | 狠狠的日视频 | 日本视频三区 | 夜夜夜操 | 国产单男 | 天天天天干 | 国产午夜亚洲精品 | 97久久草草超级碰碰碰 | 在线你懂得 | 四虎影永久在线观看网址 | 一级特黄aaaaaa大片 | 国产精品久久久精品三级 | 天天摸天天做天天爽天天弄 | 亚洲 欧美 丝袜 制服 在线 | 操干干 | 天天草夜夜骑 | 国产精品香蕉成人网在线观看 | 免费高清成人啪啪网站 | 国产精品成人一区二区 | 精品四虎免费观看国产高清 | 久久精品国产亚洲片 | 国产精品国产午夜免费福利看 | 欧美成人在线影院 | 亚洲欧美视频在线播放 | 四虎www成人影院观看 | 中文字幕在线观看一区二区三区 | 亚洲精品视频在线 | 国产美女一级ba大片免色 | 伊人久久大香线蕉综合亚洲 | 97天天干| 日韩天堂|