如何从ByteBuffer获取数组,但只能达到它的位置?

时间:2014-03-28 13:58:31

标签: java arrays bytebuffer

我有

ByteBuffer buf = ByteBuffer.allocateDirect(500);

然后我使用buf.put(byte)几次,比如20。 我通过底层数组将它保存到sql blob,即通过调用buf.array()。但是,buf.array()的长度是500.如何获得长度为20的数组(byte [])可以传递给其他(只读)函数? (当然没有复制。)

1 个答案:

答案 0 :(得分:3)

试试这个

ByteBuffer buf = ByteBuffer.allocate(500);
buf.putInt(1);
...
...
byte[] a = new byte[buf.position()];
buf.rewind();
buf.get(a);