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;
}
4 回答1.5k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
3 回答1.9k 阅读
2 回答773 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.3k 阅读