我有
ByteBuffer buf = ByteBuffer.allocateDirect(500);
然后我使用 buf.put(byte)
几次,比如 20 次。
我通过底层数组将其保存到 sql blob,即通过调用 buf.array()
。但是,buf.array()
的长度是500。如何得到一个长度为20的数组(byte[]),可以传递给其他(只读)函数? (当然没有复制。)
最佳答案
试试这个
ByteBuffer buf = ByteBuffer.allocate(500);
buf.putInt(1);
...
...
byte[] a = new byte[buf.position()];
buf.rewind();
buf.get(a);
关于java - 如何从 ByteBuffer 获取数组,但仅限于它的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22714917/