有人可以这么好解释为什么在下一行我有UnsupportedOperationException?
System.out.println(ByteBuffer.wrap(new byte [] {'t','e','s','t','\ n'})。asCharBuffer()。array());
答案 0 :(得分:3)
asCharBuffer不会包裹char[]
,因此您无法获取array()
看来你要做的就是。
System.out.println(Arrays.toString("test\n".toCharArray()));
答案 1 :(得分:2)
您是否阅读了CharBuffer.array()
的Javadoc?
并非所有CharBuffer
都由char[]
支持。 ByteBuffer.asCharBuffer()
会将ByteBuffer
的视图作为CharBuffer
返回,因此其结果由byte[]
支持。
array()
仅返回实际支持缓冲区的char[]
,如果不存在,则抛出UOE。您能够获得的最接近的替代方案是
char[] result = new char[charBuf.remaining()];
charBuf.get(result);