當(dāng)前位置: 首頁IT技術(shù) → ByteBuffer轉(zhuǎn)String的方法

ByteBuffer轉(zhuǎn)String的方法

更多

ByteBuffer俗稱緩沖器,是將數(shù)據(jù)移進(jìn)移出通道的唯一方式,并且我們只能創(chuàng)建一個獨(dú)立的基本類型緩沖器,或者使用”as”方法從ByteBuffer中獲得。

ByteBuffer中存放的是字節(jié)數(shù)組,如果要將它們轉(zhuǎn)換成字符串則需要使用 Charset,Charset是字符編碼,它提供了把字節(jié)流轉(zhuǎn)換成字符串 ( 解碼 ) 和將字符串轉(zhuǎn)換成字節(jié)流 ( 編碼) 的方法。

最近做的項目需要用到ByteBuffer進(jìn)行數(shù)據(jù)的傳輸,因此會用涉及到將ByteBuffer轉(zhuǎn)換為String的過程。

以下是實現(xiàn)該過程的方法:

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方法會將緩沖區(qū)的當(dāng)前位置”重置”到緩沖區(qū)的開始處.這樣可以保證傳入的對像被其他方法使用時讀取的數(shù)據(jù)完整性.

 

熱門評論
最新評論
發(fā)表評論 查看所有評論(0)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)