国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java NIO(二)Channel

2019-11-14 23:28:28
字體:
來源:轉載
供稿:網友
java NIO(二)Channel Channel Channel的簡介
首先我們翻開JAVA API 文檔中關于 java.nio.channels.Channel 的描述:
 
public interface Channel extends Closeable
  1. A nexus for I/O Operations.
  2. A channel rePResents an open connection to an entity such as a hardware device, a file, a network socket, or a program  component that is capable of performing one or more distinct I/O operations, for example reading or writing.
  3. A channel is either open or closed. A channel is open upon creation, and once closed it remains closed. Once a channel is closed, any attempt to invoke an I/O operation upon it will cause a ClosedChannelException to be thrown. Whether  or not a channel is open may be tested by invoking its isOpen method.
  4. Channels are, in general, intended to be safe for multithreaded access as described in the specifications of the interfaces  and classes that extend and implement this interface.

從第2點我們可以看出,Channel與流類似,它是對原I/O中流的模擬,所有數據都要通過通道進行傳輸。Channel可以表示程序與硬件設備、文件、網絡Socket或程序組件之間的一個打開的連接,但它又和流有些不大相同的地方,其中一個表現在其可以操作一個或者多個不同的  I/O操作,也就是說Channel既可以從通道中讀取數據,又可以寫數據到通道,而流的讀寫通常是單向的。

從第4點我們可以看出,實現Channel 接口的類或接口是多線程安全的。

Channel的實現

在Java NIO中,有眾多Channel的實現,但一些最重要的通道的實現有如下幾個:

  • FileChannel                  => 從文件中讀取數據
  • DatagramChannel        => 通過UDP讀寫網絡中的數據
  • SocketChannel             => 通過TCP讀寫網絡中的數據
  • ServerSocketChannel    => 監聽新進來的TCP連接。對每一個新進來的連接都會創建一個SocketChannel。

針對以上幾個Channel的實現,我們能粗略地了解到Channel的實現類們能打通程序與文件和網絡Socket之間的通道,從而數據就可以通過Channel在程序與文件、網絡間進行傳輸,并且這個傳輸是可以進行一個或者多個不同的I/O操作的,也可以說是雙向的,例如讀和寫。如下圖1所示:

nio1

圖1. Channel連接程序與硬件設備、文件和網絡Socket的連接

具體Channel的實現類們該如何使用,我們將在后面的內容中結合其他核心部分進行介紹。

 

參考資料:

[1]. Java 2 SE 7 Documentation Package java.nio

[2]. 并發編程網 Java NIO系列教程

[3]. Java nio 學習筆記(一) Buffer(緩沖區)與Channel(通道)的相關知識


上一篇:Activiti

下一篇:java中封裝

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 灵丘县| 股票| 麻阳| 巴东县| 江北区| 靖宇县| 馆陶县| 桦川县| 凤山市| 清远市| 德惠市| 五莲县| 新兴县| 峨眉山市| 石河子市| 张家港市| 焉耆| 普定县| 伽师县| 东海县| 克拉玛依市| 福州市| 南涧| 永新县| 高州市| 池州市| 玉门市| 英德市| 容城县| 东明县| 通河县| 江源县| 莆田市| 伽师县| 梧州市| 商洛市| 深泽县| 怀宁县| 昭平县| 太康县| 蒲江县|