[英]Convert CharBuffer to ByteBuffer
使用ByteBuffer.asCharBuffer()
將ByteBuffer
轉換為CharBuffer
很容易。
我如何去另一個方向? 有沒有比ByteBuffer Charset.encode(CharBuffer cb)
更簡單的方法?
CharBuffer
將其數據存儲在內部char[]
而不是byte[]
因此沒有底層byte[]
所以應該沒有更簡單的方法。
這是一個建議。
CharBuffer yourCharBuffer = CharBuffer.wrap("Roland");
ByteBuffer result = ByteBuffer.allocate(yourCharBuffer.length() * Character.BYTES);
CharBuffer converter = result.asCharBuffer();
converter.append(yourCharBuffer);
System.out.println(Arrays.toString(result.array()));
上面的代碼片段打印:
[0, 82, 0, 111, 0, 108, 0, 97, 0, 110, 0, 100]
我正在獲取同時支持converter
CharArray
和result
ByteArray
的字節數組。 它盡可能接近您的要求。 我可能錯過了一些東西。
編輯:按照@Marcono1234 在評論中的建議,我使用ByteBuffer.allocate(yourCharBuffer.length() * Character.BYTES)
來分配正確大小的緩沖區。
如果填充原始CharBuffer
的代碼可以代替填充字節緩沖區支持的CharBuffer
,它可能會更簡單一些。
您自己的建議Charset.encode(CharBuffer)
仍然更簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.