Share via


Buffer 클래스

정의

특정 기본 형식의 데이터에 대한 컨테이너입니다.

[Android.Runtime.Register("java/nio/Buffer", DoNotGenerateAcw=true)]
public abstract class Buffer : Java.Lang.Object
[<Android.Runtime.Register("java/nio/Buffer", DoNotGenerateAcw=true)>]
type Buffer = class
    inherit Object
상속
Buffer
파생
특성

설명

특정 기본 형식의 데이터에 대한 컨테이너입니다.

버퍼는 특정 기본 형식의 요소의 선형 유한 시퀀스입니다. 버퍼의 콘텐츠 외에도 버퍼의 필수 속성은 용량, 제한 및 위치입니다.

<인용구>

버퍼의 용량 은 포함된 요소의 수입니다. 버퍼의 용량은 절대 음수이며 변경되지 않습니다.

버퍼의 제한 은 읽거나 쓸 수 없는 첫 번째 요소의 인덱스입니다. 버퍼의 한도는 절대 음수이며 용량보다 크지 않습니다.

버퍼의 위치 는 읽거나 쓸 다음 요소의 인덱스입니다. 버퍼의 위치는 절대 음수가 아닌 한도보다 크지 않습니다.

</인용구>

부울이 아닌 기본 형식 각각에 대해 이 클래스의 하위 클래스가 하나 있습니다.

<h2> 데이터 <전송 /h2>

이 클래스의 각 하위 클래스는 getput 작업의 두 가지 범주를 정의합니다.

<인용구>

상대 연산은 현재 위치에서 시작하는 하나 이상의 요소를 읽거나 쓴 다음 전송된 요소 수만큼 위치를 증가합니다. 요청된 전송이 제한을 초과하면 상대 가져오기 작업이 을 BufferUnderflowException throw하고 상대 put 연산이 을 BufferOverflowExceptionthrow합니다. 두 경우 모두 데이터가 전송되지 않습니다.

절대 연산은 명시적 요소 인덱스를 사용하고 위치에 영향을 미치지 않습니다. 절대 getput 연산은 인덱스 인수가 제한을 초과하는 경우 을 throw IndexOutOfBoundsException 합니다.

</인용구>

물론 데이터는 항상 현재 위치를 기준으로 하는 적절한 채널의 I/O 작업에 의해 버퍼로 전송되거나 버퍼 밖으로 전송될 수도 있습니다.

<h2> 표시 및 초기화 </h2>

버퍼의 표시 는 메서드가 호출될 때 #reset reset 해당 위치가 다시 설정되는 인덱스입니다. 표시가 항상 정의된 것은 아니지만 정의되면 음수가 아니고 위치보다 크지 않습니다. 표시가 정의되면 위치 또는 제한이 표시보다 작은 값으로 조정될 때 삭제됩니다. 표시가 정의되지 않은 경우 메서드를 #reset reset 호출하면 가 InvalidMarkException throw됩니다.

<h2> 고정 / <h2>

다음 고정 값은 표시, 위치, 제한 및 용량 값에 대해 유지됩니다.

<blockquote>0&lt;=mark&lt;=position&lt;=limit&lt;=capacity</blockquote>

새로 만든 버퍼에는 항상 0의 위치와 정의되지 않은 표시가 있습니다. 초기 제한은 0이거나 버퍼의 형식과 버퍼가 생성되는 방식에 따라 달라지는 다른 값일 수 있습니다. 새로 할당된 버퍼의 각 요소는 0으로 초기화됩니다.

<h2> 지우기, 대칭 이동 및 되 되 고 </h2>

이 클래스는 위치, 제한 및 용량 값에 액세스하고 표시 및 재설정을 위한 메서드 외에도 버퍼에 대해 다음 작업을 정의합니다.

<ul>

<리튬>

#clear 는 채널 읽기 또는 상대 배치 작업의 새 시퀀스에 대한 버퍼를 준비합니다. 용량 및 위치에 대한 제한을 0으로 설정합니다.

</리튬>

<리튬>

#flip 는 채널 쓰기 또는 상대 가져오기 작업의 새 시퀀스에 대한 버퍼를 준비합니다. 제한을 현재 위치로 설정한 다음 위치를 0으로 설정합니다.

</리튬>

<리튬>

#rewind 버퍼가 이미 포함된 데이터를 다시 읽을 수 있도록 합니다. 제한은 변경되지 않고 위치를 0으로 설정합니다.

</리튬>

</ul>

<h2> 읽기 전용 버퍼 </h2>

모든 버퍼는 읽을 수 있지만 모든 버퍼를 쓸 수 있는 것은 아닙니다. 각 버퍼 클래스의 변형 메서드는 읽기 전용 버퍼에서 호출될 때 을 ReadOnlyBufferException throw하는 선택적 작업으로 지정됩니다. 읽기 전용 버퍼는 콘텐츠를 변경할 수 없지만 표시, 위치 및 제한 값은 변경할 수 있습니다. 버퍼가 읽기 전용인지 여부는 해당 #isReadOnly isReadOnly 메서드를 호출하여 확인할 수 있습니다.

<h2> 스레드 안전 </h2>

버퍼는 여러 동시 스레드에서 사용하기에 안전하지 않습니다. 둘 이상의 스레드에서 버퍼를 사용하는 경우 버퍼에 대한 액세스는 적절한 동기화에 의해 제어되어야 합니다.

<h2> 호출 체인 </h2>

반환할 값이 없는 이 클래스의 메서드는 호출되는 버퍼를 반환하도록 지정됩니다. 이렇게 하면 메서드 호출을 연결할 수 있습니다. 예를 들어 문 시퀀스

<인용구>

b.flip();
            b.position(23);
            b.limit(42);

</인용구>

은 좀 더 간결한 단일 문으로 바꿀 수 있습니다.

<인용구>

b.flip().position(23).limit(42);

</인용구>

1.4에 추가되었습니다.

에 대한 Java 설명서입니다 java.nio.Buffer.

이 페이지의 일부는 만들고 공유하며 에 설명된 조건에 따라 사용되는 작업을 기반으로 수정됩니다.

생성자

Buffer(IntPtr, JniHandleOwnership)

JNI 개체의 관리형 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다.

속성

Class

Object의 런타임 클래스를 반환합니다.

(다음에서 상속됨 Object)
Handle

기본 Android instance 대한 핸들입니다.

(다음에서 상속됨 Object)
HasArray

arrayOffset 가 throw되지 않으면 true array 를 반환합니다.

HasRemaining

현재 위치와 제한 사이에 요소가 있는지 여부를 알려줍니다.

IsDirect

직접 버퍼인 경우 true를 반환합니다.

IsReadOnly

이 버퍼가 읽기 전용인지 여부를 나타냅니다.

JniIdentityHashCode

특정 기본 형식의 데이터에 대한 컨테이너입니다.

(다음에서 상속됨 Object)
JniPeerMembers

특정 기본 형식의 데이터에 대한 컨테이너입니다.

PeerReference

특정 기본 형식의 데이터에 대한 컨테이너입니다.

(다음에서 상속됨 Object)
ThresholdClass

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

ThresholdType

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

메서드

ArrayOffset()

버퍼의 첫 번째 요소  의 이 버퍼 지원 배열 내에서 오프셋을 반환합니다. (선택적 작업).

Capacity()

이 버퍼의 용량을 반환합니다.

Clear()

이 버퍼를 지웁니다.

Clone()

이 개체의 복사본을 만들고 반환합니다.

(다음에서 상속됨 Object)
Dispose()

특정 기본 형식의 데이터에 대한 컨테이너입니다.

(다음에서 상속됨 Object)
Dispose(Boolean)

특정 기본 형식의 데이터에 대한 컨테이너입니다.

(다음에서 상속됨 Object)
Duplicate()

이 버퍼의 콘텐츠를 공유하는 새 버퍼를 만듭니다.

Equals(Object)

다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다.

(다음에서 상속됨 Object)
Flip()

이 버퍼를 대칭 이동합니다.

GetDirectBufferAddress()

특정 기본 형식의 데이터에 대한 컨테이너입니다.

GetHashCode()

개체의 해시 코드 값을 반환합니다.

(다음에서 상속됨 Object)
JavaFinalize()

가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다.

(다음에서 상속됨 Object)
Limit()

이 버퍼의 제한을 반환합니다.

Limit(Int32)

이 버퍼의 제한을 설정합니다.

Mark()

이 버퍼의 표시를 해당 위치에 설정합니다.

Notify()

이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다.

(다음에서 상속됨 Object)
NotifyAll()

이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다.

(다음에서 상속됨 Object)
Position()

이 버퍼의 위치를 반환합니다.

Position(Int32)

이 버퍼의 위치를 설정합니다.

Remaining()

현재 위치와 제한 사이의 요소 수를 반환합니다.

Reset()

이 버퍼의 위치를 이전에 표시된 위치로 다시 설정합니다.

Rewind()

이 버퍼를 되 감습니다.

SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

(다음에서 상속됨 Object)
Slice()

콘텐츠가 이 버퍼 콘텐츠의 공유 하위 시퀀스인 새 버퍼를 만듭니다.

Slice(Int32, Int32)

콘텐츠가 이 버퍼 콘텐츠의 공유 하위 시퀀스인 새 버퍼를 만듭니다.

ToArray<T>()

특정 기본 형식의 데이터에 대한 컨테이너입니다.

(다음에서 상속됨 Object)
ToString()

개체의 문자열 표현을 반환합니다.

(다음에서 상속됨 Object)
UnregisterFromRuntime()

특정 기본 형식의 데이터에 대한 컨테이너입니다.

(다음에서 상속됨 Object)
Wait()

현재 스레드가 깨어날 때까지 대기하게 합니다( 일반적으로 <알림을 받><거나 <>중단/>em>)합니다<.

(다음에서 상속됨 Object)
Wait(Int64)

현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)
Wait(Int64, Int32)

현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IJavaPeerable.Disposed()

특정 기본 형식의 데이터에 대한 컨테이너입니다.

(다음에서 상속됨 Object)
IJavaPeerable.DisposeUnlessReferenced()

특정 기본 형식의 데이터에 대한 컨테이너입니다.

(다음에서 상속됨 Object)
IJavaPeerable.Finalized()

특정 기본 형식의 데이터에 대한 컨테이너입니다.

(다음에서 상속됨 Object)
IJavaPeerable.JniManagedPeerState

특정 기본 형식의 데이터에 대한 컨테이너입니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

특정 기본 형식의 데이터에 대한 컨테이너입니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

특정 기본 형식의 데이터에 대한 컨테이너입니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

특정 기본 형식의 데이터에 대한 컨테이너입니다.

(다음에서 상속됨 Object)

확장 메서드

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

특정 기본 형식의 데이터에 대한 컨테이너입니다.

GetJniTypeName(IJavaPeerable)

특정 기본 형식의 데이터에 대한 컨테이너입니다.

적용 대상