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)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 射阳县| 兴隆县| 成都市| 卢龙县| 岳西县| 玉田县| 昌平区| 宝应县| 田林县| 定边县| 辛集市| 都昌县| 三亚市| 柘荣县| 政和县| 龙泉市| 阿拉善右旗| 吉隆县| 平利县| 北碚区| 沂南县| 六安市| 泾阳县| 平舆县| 柳林县| 永州市| 岱山县| 施秉县| 雷州市| 乡宁县| 夏邑县| 敦煌市| 远安县| 榆林市| 壶关县| 敦化市| 会理县| 贡嘎县| 井陉县| 宣化县| 永清县|