java.nio.ByteBuffer
클래스에는 ByteBuffer.array()
메서드가 있지만이 메서드는 버퍼의 용량이며 사용 된 용량이 아닌 배열을 반환합니다. 이 때문에 나는 꽤 많은 문제가 있습니다.ByteBuffer에서 사용 된 byte []를 얻는 방법
나는 ByteBuffer.remaining()
을 사용하면 현재 버퍼에 사용되는 바이트 양을 알게되었으므로 기본적으로 내가 찾고있는 것은 byte[]
만 사용중인 바이트를 얻는 방법입니다. (즉, ByteBuffer.remaining()
에 표시되는 바이트
나는 여러 가지 시도를 해봤지만 실패한 것으로 보입니다. 유일한 해결책은 할당 된 크기의 ByteBuffer
을 생성하는 것으로 생각할 수 있습니다. 버퍼 잔존하고 필요한 경우 byte[]
할당.
정확히 같은 방식으로 작동 얻을, 당신은) (bb.rewind해야한다; 전에 bb.get (ba); 그렇지 않으면 BufferUnderflowException이 발생합니다. 즉, 요청을 충족시키는 데 필요한 것보다 적은 바이트가 버퍼에 남아있는 경우, 즉 length> remaining() 인 경우 바이트가 전송되지 않고 BufferUnderflowException이 발생합니다. –