ByteBuffer类型转换成byte数组?
public static void main(String[] args) throws UnsupportedEncodingException {
ByteBuffer byteBuffer = ByteBuffer.allocateDirect(10);
byteBuffer.put("Test".getBytes("UTF-8"));
byteBuffer.flip();
System.out.println(Arrays.toString(conver(byteBuffer)));
byteBuffer = ByteBuffer.allocate(10);
byteBuffer.put("Test".getBytes("UTF-8"));
byteBuffer.flip();
System.out.println(Arrays.toString(conver(byteBuffer)));
}
//必须调用完后flip()才可以调用此方法
public static byte[] conver(ByteBuffer byteBuffer){
int len = byteBuffer.limit() - byteBuffer.position();
byte[] bytes = new byte[len];
if(byteBuffer.isReadOnly()){
return null;
}else {
byteBuffer.get(bytes);
}
return bytes;
}
8 回答3.5k 阅读
9 回答3.4k 阅读
5 回答851 阅读
6 回答1.8k 阅读
4 回答966 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答648 阅读✓ 已解决