Animals

          One thing I know,that is I know nothing. -- Socrates Greek
          隨筆 - 2, 文章 - 0, 評論 - 2, 引用 - 0
          數(shù)據加載中……

          java.nio.ByteBuffer中flip、rewind、clear方法的區(qū)別

          對緩沖區(qū)的讀寫操作首先要知道緩沖區(qū)的下限、上限和當前位置。下面這些變量的值對Buffer類中的某些操作有著至關重要的作用:
          1. limit:所有對Buffer讀寫操作都會以limit變量的值作為上限。
          2. position:代表對緩沖區(qū)進行讀寫時,當前游標的位置。
          3. capacity:代表緩沖區(qū)的最大容量(一般新建一個緩沖區(qū)的時候,limit的值和capacity的值默認是相等的)。
          flip、rewind、clear這三個方法便是用來設置這些值的。

          clear方法

          public final Buffer clear()
          {
              position 
          = 0//重置當前讀寫位置
              limit = capacity; 
              mark 
          = -1;  //取消標記
              return this;
          }



          clear方法將緩沖區(qū)清空,一般是在重新寫緩沖區(qū)時調用。

          flip方法

          public final Buffer flip() {
          limit
          = position;
          position
          = 0;
          mark
          = -1;
          return this;
          }
          反轉緩沖區(qū)。首先將限制設置為當前位置,然后將位置設置為 0。如果已定義了標記,則丟棄該標記。 常與compact方法一起使用。通常情況下,在準備從緩沖區(qū)中讀取數(shù)據時調用flip方法。

          rewind方法


          1public final Buffer rewind() {
          2 position = 0;
          3 mark = -1;
          4 return this;
          5}



          以上三種方法均使用final修飾,java.nio.Buffer的所有子類均使用同一種flip、clear和rewind機制。

          posted on 2013-06-18 17:32 sdjxsgb 閱讀(21841) 評論(2)  編輯  收藏

          評論

          # re: java.nio.ByteBuffer中flip、rewind、clear方法的區(qū)別  回復  更多評論   

          感謝樓主分享
          2013-06-20 13:29 | 開發(fā)吧

          # re: java.nio.ByteBuffer中flip、rewind、clear方法的區(qū)別[未登錄]  回復  更多評論   

          樓主這分享簡潔明了,很受用感謝樓主了
          2015-07-12 21:59 | troy

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


          網站導航:
           
          主站蜘蛛池模板: 大城县| 十堰市| 肃南| 襄樊市| 栾川县| 土默特右旗| 江达县| 汝南县| 西宁市| 东海县| 桐柏县| 益阳市| 湘潭市| 湟中县| 台湾省| 泗洪县| 文水县| 普兰店市| 鄂州市| 炎陵县| 宜春市| 平顺县| 凤山市| 永兴县| 土默特左旗| 南通市| 清河县| 蓝山县| 读书| 商丘市| 天峻县| 姜堰市| 乐昌市| 汽车| 云霄县| 阳春市| 永仁县| 尼勒克县| 翁牛特旗| 安徽省| 咸丰县|