qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          Java NIO類庫關系圖解

          下面這張圖給出了nio類庫的各個類之間的關系,這樣你就能知道該怎樣移動和轉換數據了。舉例來說,如果你想把byte數組寫進文件,你得先用ByteBuffer.wrap( )方法把這個byte數組wrap成buffer,再用getChannel( )在FileOutputStream上打開一個channel,然后才能用ByteBuffer把數據寫入FileChannel。

            注意,ByteBuffer是往channel里讀寫數據的唯一途徑,而且你只能創建這一種byte基本類型的緩沖器ByteBuffer,其余基本類型的緩沖器要用"as" 方法來獲取 。另外你不能把基本類型buffer轉換成ByteBuffer ,不過你可以用view buffer往ByteBuffer里讀寫基本類型數據 ,所以這實際上也不是什么限制了。

            另外,視圖是一種邏輯上的概念,通過視圖操作實質上就是對ByteBuffer的操作,就像通過Iterator操作List一樣。雖然我們可以用wrap() 直接把char數組轉換成CharBuffer,但實際上它還是一個ByteBuffer,而CharBuffer只是它的view。由此可知,我們操控的對象永遠都是ByteBuffer,因為只有它才能往channel里讀寫數據 ,其他基本類型數據緩沖器原理一樣。

          posted on 2011-12-09 16:05 順其自然EVO 閱讀(177) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2011年12月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 永寿县| 嘉黎县| 喜德县| 宝山区| 三穗县| 内乡县| 黄梅县| 乌拉特中旗| 康保县| 湖州市| 西和县| 连城县| 精河县| 泸定县| 家居| 宁津县| 乌兰县| 南召县| 金塔县| SHOW| 华容县| 平塘县| 岳普湖县| 淮安市| 巩义市| 万年县| 鹤峰县| 岐山县| 双峰县| 武定县| 陇南市| 措勤县| 汕尾市| 新泰市| 满城县| 大姚县| 花垣县| 大兴区| 阳西县| 中西区| 东方市|