ByteBuffer 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
바이트 버퍼입니다.
[Android.Runtime.Register("java/nio/ByteBuffer", DoNotGenerateAcw=true)]
public abstract class ByteBuffer : Java.Nio.Buffer, IDisposable, Java.Interop.IJavaPeerable, Java.Lang.IComparable
[<Android.Runtime.Register("java/nio/ByteBuffer", DoNotGenerateAcw=true)>]
type ByteBuffer = class
inherit Buffer
interface IComparable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 상속
- 파생
- 특성
- 구현
설명
바이트 버퍼입니다.
이 클래스는 바이트 버퍼에 대한 6가지 작업 범주를 정의합니다.
<ul>
<리>
단일 바이트를 읽고 쓰는 절대 및 #put(byte) <i>put</i>
상대 #get() <i>get</i>
및 메서드
</리>
<리>
이 버퍼에서 배열로 연속된 바이트 시퀀스를 전송하는 상대 #get(byte[]) <i>bulk get</i>
메서드
</리>
<리>
바이트 배열 또는 다른 바이트 버퍼에서 이 버퍼로 연속된 바이트 시퀀스를 전송하는 상대 #put(byte[]) <i>bulk put</i>
메서드
</리>
<리>
다른 기본 형식의 값을 읽고 쓰는 절대 및 #putChar(char) <i>put</i>
상대 #getChar() <i>get</i>
및 메서드, 특정 바이트 순서로 바이트 시퀀스 간 변환;
</리>
<리>
뷰 버퍼를 만드는 메서드: 바이트 버퍼를 다른 기본 형식의 값을 포함하는 버퍼로 볼 수 있도록 합니다.
</리>
<리>
및 #duplicate duplicating
#slice slicing
바이트 버퍼에 대한 #compact compacting
메서드입니다.
</리>
</ul>
바이트 버퍼는 버퍼의 공간을 할당하는 바이트 버퍼를 #allocate <i>allocation</i>
만들 수 있습니다.
콘텐츠 또는 버퍼에 대한 기존 바이트 배열에 의한 #wrap(byte[]) <i>wrapping</i>
것입니다.
"direct"><h2> Direct 및 비 직접 버퍼 </h2>
바이트 버퍼는 직접 버퍼이거나 직접이 아닌 버퍼입니다. 직접 바이트 버퍼가 제공되면 Java 가상 머신은 직접 네이티브 I/O 작업을 수행하기 위해 최선을 다할 것입니다. 즉, 기본 운영 체제의 네이티브 I/O 작업 중 하나를 호출하기 전(또는 이후) 중간 버퍼에 버퍼의 콘텐츠를 복사하지 않도록 합니다.
이 클래스의 팩터리 메서드를 호출하여 직접 바이트 버퍼를 #allocateDirect(int) allocateDirect
만들 수 있습니다. 이 메서드에서 반환되는 버퍼는 일반적으로 비 직접 버퍼보다 할당 및 할당 취소 비용이 다소 높습니다. 직접 버퍼의 내용은 일반 가비지 수집 힙 외부에 있을 수 있으므로 애플리케이션의 메모리 공간과 미치는 영향이 명확하지 않을 수 있습니다. 따라서 기본 시스템의 네이티브 I/O 작업이 적용되는 수명이 긴 대형 버퍼에 대해 직접 버퍼를 할당하는 것이 좋습니다. 일반적으로 직접 버퍼는 프로그램 성능에서 측정 가능한 이득을 얻을 때만 할당하는 것이 가장 좋습니다.
직접 바이트 버퍼는 파일의 영역에서 메모리에 java.nio.channels.FileChannel#map mapping
직접 만들 수도 있습니다. Java 플랫폼의 구현은 필요에 따라 JNI를 통해 네이티브 코드에서 직접 바이트 버퍼를 만들 수 있습니다. 이러한 종류의 버퍼 중 하나의 인스턴스가 액세스할 수 없는 메모리 영역을 참조하는 경우 해당 지역에 액세스하려고 하면 버퍼의 콘텐츠가 변경되지 않으며 액세스 시 또는 나중에 지정되지 않은 예외가 throw됩니다.
바이트 버퍼가 직접 버퍼인지 아니면 직접이 아닌지 여부는 해당 #isDirect isDirect
메서드를 호출하여 확인할 수 있습니다. 이 메서드는 성능에 중요한 코드에서 명시적 버퍼 관리를 수행할 수 있도록 제공됩니다.
"bin"><h2> 이진 데이터에 <대한 액세스 /h2>
이 클래스는 을 제외한 boolean
다른 모든 기본 형식의 값을 읽고 쓰는 메서드를 정의합니다. 기본값은 버퍼의 현재 바이트 순서에 따라 바이트 시퀀스로 변환되며 메서드를 통해 #order order
검색 및 수정될 수 있습니다. 특정 바이트 순서는 클래스의 ByteOrder
인스턴스로 표시됩니다. 바이트 버퍼의 초기 순서는 항상 ByteOrder#BIG_ENDIAN BIG_ENDIAN
.
다른 유형의 값 시퀀스인 다른 유형의 이진 데이터에 액세스하기 위해 이 클래스는 각 형식에 대한 절대 및 상대 get 및 put 메서드의 패밀리를 정의합니다. 예를 들어 32비트 부동 소수점 값의 경우 이 클래스는 다음을 정의합니다.
<blockquote>
float {@link #getFloat()}
float {@link #getFloat(int) getFloat(int index)}
void {@link #putFloat(float) putFloat(float f)}
void {@link #putFloat(int,float) putFloat(int index, float f)}
</blockquote>
해당 메서드는 형식char
, , long
short
int
및 double
.에 대해 정의됩니다. 절대 get 및 put 메서드의 인덱스 매개 변수는 읽거나 쓰는 형식이 아닌 바이트 단위입니다.
"views">
동일한 형식의 값 시퀀스인 같은 유형의 이진 데이터에 액세스하기 위해 이 클래스는 지정된 바이트 버퍼의 뷰를 만들 수 있는 메서드를 정의합니다. 뷰 버퍼는 바이트 버퍼에서 콘텐츠를 백업하는 다른 버퍼일 뿐입니다. 바이트 버퍼의 콘텐츠에 대한 변경 내용은 뷰 버퍼에 표시되고 그 반대의 경우도 마찬가지입니다. 두 버퍼의 위치, 제한 및 표시 값은 독립적입니다. 예를 들어 메서드는 #asFloatBuffer() asFloatBuffer
메서드가 호출되는 바이트 버퍼에 의해 지원되는 클래스의 인스턴스 FloatBuffer
를 만듭니다. 해당 뷰 생성 메서드는 형식char
, short
, long
int
및 double
.에 대해 정의됩니다.
뷰 버퍼는 위에서 설명한 형식별 get 및 put 메서드 제품군에 비해 세 가지 중요한 이점이 있습니다.
<ul>
<리>
뷰 버퍼는 바이트가 아니라 값의 형식별 크기를 기준으로 인덱싱됩니다.
</리>
<리>
뷰 버퍼는 버퍼와 배열 또는 동일한 형식의 다른 버퍼 간에 연속된 값 시퀀스를 전송할 수 있는 상대적인 대량 가져오기 및 put 메서드를 제공합니다.
</리>
<리>
뷰 버퍼는 해당 백업 바이트 버퍼가 직접인 경우에만 직접적이기 때문에 잠재적으로 훨씬 더 효율적입니다.
</리>
</ul>
뷰 버퍼의 바이트 순서는 뷰를 만들 때 해당 바이트 버퍼의 바이트 순서로 고정됩니다.
<h2> 호출 체인 </h2>
반환할 값이 없는 이 클래스의 메서드는 호출되는 버퍼를 반환하도록 지정됩니다. 이렇게 하면 메서드 호출을 연결할 수 있습니다.
문 시퀀스
<blockquote>
bb.putInt(0xCAFEBABE);
bb.putShort(3);
bb.putShort(45);
</blockquote>
예를 들어 단일 문으로 바꿀 수 있습니다.
<blockquote>
bb.putInt(0xCAFEBABE).putShort(3).putShort(45);
</blockquote>
1.4에 추가되었습니다.
에 대한 java.nio.ByteBuffer
Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.
생성자
ByteBuffer(IntPtr, JniHandleOwnership) |
JNI 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다. |
속성
Char |
현재 위치에 있는 문자를 반환하고 위치를 2씩 늘입니다. |
Class |
이 |
Double |
현재 위치에서 double을 반환하고 위치를 8씩 늘입니다. |
Float |
현재 위치에 있는 float를 반환하고 위치를 4씩 늘입니다. |
Handle |
기본 Android 인스턴스에 대한 핸들입니다. (다음에서 상속됨 Object) |
HasArray |
이 버퍼가 액세스 가능한 바이트 배열에 의해 지원되는지 여부를 알려줍니다. |
HasRemaining |
현재 위치와 제한 사이에 요소가 있는지 여부를 나타냅니다. (다음에서 상속됨 Buffer) |
Int |
현재 위치에 있는 int를 반환하고 위치를 4씩 늘입니다. |
IsDirect |
직접 버퍼인 경우 true를 반환합니다. (다음에서 상속됨 Buffer) |
IsReadOnly |
이 버퍼가 읽기 전용인지 여부를 나타냅니다. (다음에서 상속됨 Buffer) |
JniIdentityHashCode |
바이트 버퍼입니다. (다음에서 상속됨 Object) |
JniPeerMembers |
바이트 버퍼입니다. |
Long |
현재 위치에서 long을 반환하고 위치를 8씩 늘입니다. |
PeerReference |
바이트 버퍼입니다. (다음에서 상속됨 Object) |
Short |
현재 위치에서 짧은 값을 반환하고 위치를 2씩 늘입니다. |
ThresholdClass |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
ThresholdType |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
메서드
AlignedSlice(Int32) |
콘텐츠가 이 버퍼 콘텐츠의 공유 및 정렬된 하위 시퀀스인 새 바이트 버퍼를 만듭니다. |
AlignmentOffset(Int32, Int32) |
지정된 인덱스의 바이트를 가리키는 메모리 주소를 반환하고 지정된 단위 크기를 모듈러스합니다. |
Allocate(Int32) |
새 바이트 버퍼를 할당합니다. |
AllocateDirect(Int32) |
새 직접 바이트 버퍼를 할당합니다. |
ArrayOffset() |
버퍼의 첫 번째 요소에 대한 이 버퍼의 지원 배열 내의 오프셋을 반환합니다. (선택적 작업). |
AsCharBuffer() |
이 바이트 버퍼의 뷰를 char 버퍼로 만듭니다. |
AsDoubleBuffer() |
이 바이트 버퍼의 뷰를 이중 버퍼로 만듭니다. |
AsFloatBuffer() |
이 바이트 버퍼의 뷰를 부동 버퍼로 만듭니다. |
AsIntBuffer() |
이 바이트 버퍼의 뷰를 int 버퍼로 만듭니다. |
AsLongBuffer() |
이 바이트 버퍼의 보기를 긴 버퍼로 만듭니다. |
AsReadOnlyBuffer() |
이 버퍼의 콘텐츠를 공유하는 새 읽기 전용 바이트 버퍼를 만듭니다. |
AsShortBuffer() |
이 바이트 버퍼의 보기를 짧은 버퍼로 만듭니다. |
Capacity() |
이 버퍼의 용량을 반환합니다. (다음에서 상속됨 Buffer) |
Clear() |
이 버퍼를 지웁니다. (다음에서 상속됨 Buffer) |
Clone() |
이 개체의 복사본을 만들고 반환합니다. (다음에서 상속됨 Object) |
Compact() |
이 버퍼를 압축합니다. (선택적 작업). |
CompareTo(ByteBuffer) |
이 버퍼를 다른 버퍼와 비교합니다. |
Dispose() |
바이트 버퍼입니다. (다음에서 상속됨 Object) |
Dispose(Boolean) |
바이트 버퍼입니다. (다음에서 상속됨 Object) |
Duplicate() |
이 버퍼의 콘텐츠를 공유하는 새 바이트 버퍼를 만듭니다. |
Equals(Object) |
다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다. (다음에서 상속됨 Object) |
Flip() |
이 버퍼를 대칭 이동합니다. (다음에서 상속됨 Buffer) |
Get() |
상대 get 메서드입니다. |
Get(Byte[]) |
상대 대량 가져오기 메서드입니다. |
Get(Byte[], Int32, Int32) |
상대 대량 가져오기 메서드입니다. |
Get(Int32) |
Absolute get 메서드입니다. |
GetChar(Int32) |
char 값을 읽기 위한 Absolute get 메서드입니다. |
GetDirectBufferAddress() |
바이트 버퍼입니다. (다음에서 상속됨 Buffer) |
GetDouble(Int32) |
Double 값을 읽기 위한 Absolute get 메서드입니다. |
GetFloat(Int32) |
Float 값을 읽기 위한 Absolute get 메서드입니다. |
GetHashCode() |
개체에 대한 해시 코드 값을 반환합니다. (다음에서 상속됨 Object) |
GetInt(Int32) |
int 값을 읽기 위한 Absolute get 메서드입니다. |
GetLong(Int32) |
긴 값을 읽기 위한 Absolute get 메서드입니다. |
GetShort(Int32) |
짧은 값을 읽기 위한 Absolute get 메서드입니다. |
JavaFinalize() |
가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다. (다음에서 상속됨 Object) |
Limit() |
이 버퍼의 제한을 반환합니다. (다음에서 상속됨 Buffer) |
Limit(Int32) |
이 버퍼의 제한을 설정합니다. (다음에서 상속됨 Buffer) |
Mark() |
이 버퍼의 표시를 해당 위치에 설정합니다. (다음에서 상속됨 Buffer) |
Mismatch(ByteBuffer) |
이 버퍼와 지정된 버퍼 간의 첫 번째 불일치의 상대 인덱스 찾기 및 반환 |
Notify() |
이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다. (다음에서 상속됨 Object) |
NotifyAll() |
이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다. (다음에서 상속됨 Object) |
Order() |
이 버퍼의 바이트 순서를 검색합니다. |
Order(ByteOrder) |
이 버퍼의 바이트 순서를 수정합니다. |
Position() |
이 버퍼의 위치를 반환합니다. (다음에서 상속됨 Buffer) |
Position(Int32) |
이 버퍼의 위치를 설정합니다. (다음에서 상속됨 Buffer) |
Put(Byte[]) |
상대 대량 배치 메서드 (선택적 작업). |
Put(Byte[], Int32, Int32) |
상대 대량 배치 메서드 (선택적 작업). |
Put(ByteBuffer) |
상대 대량 배치 메서드 (선택적 작업). |
Put(Int32, SByte) |
Absolute put 메서드 (선택적 작업). |
Put(SByte) |
Relative put 메서드 (선택적 작업). |
PutChar(Char) |
char 값 를 작성하기 위한 상대 put 메서드 (선택적 작업). |
PutChar(Int32, Char) |
char 값 를 작성하기 위한 Absolute put 메서드 (선택적 작업). |
PutDouble(Double) |
double 값 를 작성하기 위한 상대 put 메서드 (선택적 작업). |
PutDouble(Int32, Double) |
double 값 를 작성하기 위한 Absolute put 메서드 (선택적 작업). |
PutFloat(Int32, Single) |
float 값을 쓰기 위한 Absolute put 메서드 (선택적 작업). |
PutFloat(Single) |
float 값 를 작성하기 위한 상대 put 메서드 (선택적 작업). |
PutInt(Int32) |
int 값 를 작성하기 위한 상대 put 메서드 (선택적 작업). |
PutInt(Int32, Int32) |
int value 를 작성하기 위한 Absolute put 메서드 (선택적 작업). |
PutLong(Int32, Int64) |
long 값 를 작성하기 위한 Absolute put 메서드 (선택적 작업). |
PutLong(Int64) |
long 값 를 작성하기 위한 상대 put 메서드 (선택적 작업). |
PutShort(Int16) |
짧은 값을 작성하기 위한 상대 put 메서드 (선택적 작업). |
PutShort(Int32, Int16) |
짧은 값을 쓰기 위한 Absolute put 메서드 (선택적 작업). |
Remaining() |
현재 위치와 제한 사이의 요소 수를 반환합니다. (다음에서 상속됨 Buffer) |
Reset() |
이 버퍼의 위치를 이전에 표시된 위치로 다시 설정합니다. (다음에서 상속됨 Buffer) |
Rewind() |
이 버퍼를 되감습니다. (다음에서 상속됨 Buffer) |
SetHandle(IntPtr, JniHandleOwnership) |
Handle 속성을 설정합니다. (다음에서 상속됨 Object) |
Slice() |
콘텐츠가 이 버퍼 콘텐츠의 공유 하위 시퀀스인 새 바이트 버퍼를 만듭니다. |
Slice(Int32, Int32) |
콘텐츠가 이 버퍼 콘텐츠의 공유 하위 시퀀스인 새 바이트 버퍼를 만듭니다. |
Slice(Int32, Int32) |
콘텐츠가 이 버퍼 콘텐츠의 공유 하위 시퀀스인 새 버퍼를 만듭니다. (다음에서 상속됨 Buffer) |
ToArray<T>() |
바이트 버퍼입니다. (다음에서 상속됨 Object) |
ToString() |
개체의 문자열 표현을 반환합니다. (다음에서 상속됨 Object) |
UnregisterFromRuntime() |
바이트 버퍼입니다. (다음에서 상속됨 Object) |
Wait() |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 <><중단/종료>합니다.> (다음에서 상속됨 Object) |
Wait(Int64) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
Wait(Int64, Int32) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
Wrap(Byte[]) |
바이트 배열을 버퍼로 래핑합니다. |
Wrap(Byte[], Int32, Int32) |
바이트 배열을 버퍼로 래핑합니다. |
명시적 인터페이스 구현
IComparable.CompareTo(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) |
바이트 버퍼입니다. |