누군가가 친절하게 다음 행에 UnsupportedOperationException이있는 이유를 설명 할 수 있습니까?UnsupportedOperationException ByteBuffer.asCharArray(). array()
에서 System.out.println (ByteBuffer.wrap (새 바이트 [] { 't', 'E', 'S', 't', '\ n을'}). asCharBuffer(). 어레이 ());
누군가가 친절하게 다음 행에 UnsupportedOperationException이있는 이유를 설명 할 수 있습니까?UnsupportedOperationException ByteBuffer.asCharArray(). array()
에서 System.out.println (ByteBuffer.wrap (새 바이트 [] { 't', 'E', 'S', 't', '\ n을'}). asCharBuffer(). 어레이 ());
asCharBuffer는 char[]
은 그래서 당신은 당신이 뭘 하려는지 표시의 array()
얻을 수없는 포장하지 않습니다.
System.out.println(Arrays.toString("test\n".toCharArray()));
CharBuffer.array()
에 대한 Javadoc을 읽었습니까?
모두 CharBuffer
은 char[]
에 의해 뒷받침됩니다. ByteBuffer.asCharBuffer()
은 ByteBuffer
의보기가 CharBuffer
이므로 을 반환하므로 결과는 byte[]
입니다.
array()
은 실제로 버퍼를 백업하는 char[]
만을 반환하며,없는 경우 UOE를 발생시킵니다. 당신이 얻을 수있을 것이다 가장 가까운 대안은 사실 내가의 ByteBuffer로되는 FileChannel을 읽고 있어요
char[] result = new char[charBuf.remaining()];
charBuf.get(result);
같은 (반드시 그것이 텍스트 파일에 대해 알고)과의 ByteBuffer에서 CharBuffer를가하고자합니다. 내가 할 수 없다면 그 방법을 사용하는 이유는 무엇입니까? 그리고 두 번째로 올바른 방법으로 질문을 던집니다. 고맙습니다. – user1568898
'char []'의 래퍼 인 CharBuffer를 만들 때'array()'를 사용하여 버퍼를 만든 원래의 배열을 얻을 수 있습니다. –
http://stackoverflow.com/questions/5936275/fast-bytebuffer-to-charbuffer-or-char와 같은 것? –