簡體   English   中英

將 CharBuffer 轉換為 ByteBuffer

[英]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 CharArrayresult ByteArray的字節數組。 它盡可能接近您的要求。 我可能錯過了一些東西。

編輯:按照@Marcono1234 在評論中的建議,我使用ByteBuffer.allocate(yourCharBuffer.length() * Character.BYTES)來分配正確大小的緩沖區。

如果填充原始CharBuffer的代碼可以代替填充字節緩沖區支持的CharBuffer ,它可能會更簡單一些。

您自己的建議Charset.encode(CharBuffer)仍然更簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM