Wie extrahierst du einen String aus einem schreibgeschützten ByteBuffer? Ich kann die ByteBuffer.array () -Methode nicht verwenden, da sie eine ReadOnlyException auslöst. Muss ich ByteBuffer.get (arr []) verwenden und es kopieren, um die Daten zu lesen und einen String zu erstellen? Es erscheint verschwenderisch, eine Kopie zu erstellen, nur um sie zu lesen.
Sie können Charset.decode(ByteBuffer)
, die ein ByteBuffer
in ein CharBuffer
umwandelt. Dann rufe einfach toString()
an. Beispielcode:
Der ReadOnly-Puffer kann Ihnen keinen Zugriff auf das Array geben, sonst könnten Sie ihn ändern. Hinweis: Der String hat noch eine Kopie als char []. Wenn das ein Problem ist, würde ich die Verwendung eines Nur-Lese-Puffers überdenken.
Tags und Links java bytebuffer