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 | 蘇駿強的博客