ByteBuffer轉String的方法

ByteBuffer轉String的方法
最近做的項目需要用到ByteBuffer進行數據的傳輸,因此會用涉及到將ByteBuffer轉換爲String的過程,在這之前我們需要認識一下ByteBuffer:
ByteBuffer俗稱緩衝器,是將數據移進移出通道的唯一方式,並且我們只能創建一個獨立的基本類型緩衝器,或者使用”as”方法從ByteBuffer中獲得。ByteBuffer中存放的是字節數組,如果要將它們轉換成字符串則需要使用 Charset,Charset是字符編碼,它提供了把字節流轉換成字符串 ( 解碼 ) 和將字符串轉換成字節流 ( 編碼) 的方法。以下是實現該過程的方法:


 public static String byteBufferToString(ByteBuffer buffer) {
 CharBuffer charBuffer = null;
 try {
 Charset charset = Charset.forName("UTF-8");
 CharsetDecoder decoder = charset.newDecoder();
 charBuffer = decoder.decode(buffer);
 buffer.flip();
 return charBuffer.toString();
 } catch (Exception ex) {
 ex.printStackTrace();
 return null;
 }
 }


需要說明的是,flip方法會將緩衝區的當前位置”重置”到緩衝區的開始處.這樣可以保證傳入的對像被其他方法使用時讀取的數據完整性.
以上是對ByteBuffer使用的學習筆記,希望有問題可以指出並跟我討論.\

本文固定鏈接: http://www.sujunqiang.com/archives/238.html | 蘇駿強的博客

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章