Ruby 将 Java 字节缓冲区对象转换为字符串

Ruby Convert a Java Byte Buffer object to String

嗨,我在 ruby 中有一个对象,它的类型是 Byte ByteBuffer

对象类型:java.nio.HeapByteBuffer[pos=0 lim=437 cap=437]

我想convert/decode把这个对象变成ruby

中的String

String.from_java_bytes 扩展,但它不需要(可选的)偏移量和长度,因此首先将缓冲区的内容复制到新的 byte[] 数组中:

>> bytes = Java::byte[buffer.limit].new
=> byte[0, 0, 0]@3427b02d
>> buffer.get(bytes)
=> #<Java::JavaNio::HeapByteBuffer:0x3967e60c>
>> bytes
=> byte[102, 111, 111]@3427b02d
>> String.from_java_bytes bytes