다음을 통해 공유


ByteBuffer.Compact 메서드

정의

이 버퍼를 압축합니다.   (선택적 작업).

[Android.Runtime.Register("compact", "()Ljava/nio/ByteBuffer;", "GetCompactHandler")]
public abstract Java.Nio.ByteBuffer Compact ();
[<Android.Runtime.Register("compact", "()Ljava/nio/ByteBuffer;", "GetCompactHandler")>]
abstract member Compact : unit -> Java.Nio.ByteBuffer

반환

이 버퍼

특성

예외

이 버퍼의 내용을 변경할 수 없으면 입니다.

설명

이 버퍼를 압축합니다.   (선택적 작업).

버퍼의 현재 위치와 해당 제한 사이의 바이트(있는 경우)는 버퍼의 시작 부분에 복사됩니다. 즉, 인덱스 p = position();의 바이트가 인덱스 0에 복사되고 인덱스 p + 의 바이트입니다. 인덱스 1에 1이 복사되고 인덱limit()스  -  바이트까지 복사됩니다. 1은 n = limit() 인덱스로 복사됩니다. - 1 - p. 그런 다음 버퍼의 위치가 n+1설정되고 해당 제한이 해당 용량으로 설정됩니다. 정의된 경우 표시가 삭제됩니다.

버퍼의 위치는 0이 아닌 복사된 바이트 수로 설정되므로 이 메서드의 호출 바로 뒤에 다른 상대 put 메서드를 호출할 수 있습니다.

쓰기가 완료되지 않은 경우 버퍼에서 데이터를 작성한 후 이 메서드를 호출합니다. 예를 들어 다음 루프는 버퍼 buf를 통해 한 채널에서 다른 채널로 바이트를 복사합니다.

<blockquote>

{@code
              buf.clear();          // Prepare buffer for use
              while (in.read(buf) >= 0 || buf.position != 0) {
                  buf.flip();
                  out.write(buf);
                  buf.compact();    // In case of partial write
              }
            }

</blockquote>

에 대한 java.nio.ByteBuffer.compact()Java 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

적용 대상