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 閱讀(176) 評論(0)  編輯  收藏


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


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

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 清水河县| 双江| 新野县| 上林县| 广水市| 丹寨县| 山阳县| 屏边| 云梦县| 青浦区| 汶川县| 潮安县| 舒兰市| 壤塘县| 伊金霍洛旗| 湖口县| 洮南市| 滕州市| 荆门市| 南城县| 来安县| 五指山市| 广德县| 定结县| 云安县| 贞丰县| 安丘市| 葵青区| 张家口市| 察雅县| 曲阳县| 乡宁县| 马山县| 库车县| 孟州市| 六安市| 十堰市| 奉贤区| 千阳县| 长汀县| 淳安县|