Buffer 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
특정 기본 형식의 데이터에 대한 컨테이너입니다.
[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
- 상속
- 파생
- 특성
설명
특정 기본 형식의 데이터에 대한 컨테이너입니다.
버퍼는 특정 기본 형식의 요소의 선형 유한 시퀀스입니다. 버퍼의 콘텐츠 외에도 버퍼의 필수 속성은 용량, 제한 및 위치입니다.
<인용구>
버퍼의 용량 은 포함된 요소의 수입니다. 버퍼의 용량은 절대 음수이며 변경되지 않습니다.
버퍼의 제한 은 읽거나 쓸 수 없는 첫 번째 요소의 인덱스입니다. 버퍼의 한도는 절대 음수이며 용량보다 크지 않습니다.
버퍼의 위치 는 읽거나 쓸 다음 요소의 인덱스입니다. 버퍼의 위치는 절대 음수가 아닌 한도보다 크지 않습니다.
</인용구>
부울이 아닌 기본 형식 각각에 대해 이 클래스의 하위 클래스가 하나 있습니다.
<h2> 데이터 <전송 /h2>
이 클래스의 각 하위 클래스는 get 및 put 작업의 두 가지 범주를 정의합니다.
<인용구>
상대 연산은 현재 위치에서 시작하는 하나 이상의 요소를 읽거나 쓴 다음 전송된 요소 수만큼 위치를 증가합니다. 요청된 전송이 제한을 초과하면 상대 가져오기 작업이 을 BufferUnderflowException
throw하고 상대 put 연산이 을 BufferOverflowException
throw합니다. 두 경우 모두 데이터가 전송되지 않습니다.
절대 연산은 명시적 요소 인덱스를 사용하고 위치에 영향을 미치지 않습니다. 절대 get 및 put 연산은 인덱스 인수가 제한을 초과하는 경우 을 throw IndexOutOfBoundsException
합니다.
</인용구>
물론 데이터는 항상 현재 위치를 기준으로 하는 적절한 채널의 I/O 작업에 의해 버퍼로 전송되거나 버퍼 밖으로 전송될 수도 있습니다.
<h2> 표시 및 초기화 </h2>
버퍼의 표시 는 메서드가 호출될 때 #reset reset
해당 위치가 다시 설정되는 인덱스입니다. 표시가 항상 정의된 것은 아니지만 정의되면 음수가 아니고 위치보다 크지 않습니다. 표시가 정의되면 위치 또는 제한이 표시보다 작은 값으로 조정될 때 삭제됩니다. 표시가 정의되지 않은 경우 메서드를 #reset reset
호출하면 가 InvalidMarkException
throw됩니다.
<h2> 고정 / <h2>
다음 고정 값은 표시, 위치, 제한 및 용량 값에 대해 유지됩니다.
<blockquote>0
<=
mark<=
position<=
limit<=
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 |
이 |
Handle |
기본 Android instance 대한 핸들입니다. (다음에서 상속됨 Object) |
HasArray |
및 |
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) |
특정 기본 형식의 데이터에 대한 컨테이너입니다. |