Share via


ByteBuffer 클래스

정의

바이트 버퍼입니다.

[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
상속
ByteBuffer
파생
특성
구현

설명

바이트 버퍼입니다.

이 클래스는 바이트 버퍼에 대한 작업의 6가지 범주를 정의합니다.

<ul>

<리튬>

단일 바이트를 읽고 쓰는 절대 및 상대 #get() <i>get</i>#put(byte) <i>put</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를 통해 네이티브 코드에서 직접 바이트 버퍼 만들기를 지원할 수 있습니다. 이러한 종류의 버퍼 중 하나의 instance 액세스할 수 없는 메모리 영역을 참조하는 경우 해당 지역에 액세스하려고 하면 버퍼의 콘텐츠가 변경되지 않으며 액세스 시 또는 나중에 지정되지 않은 예외가 throw됩니다.

바이트 버퍼가 직접 버퍼인지 비 직접 버퍼인지 여부는 메서드 #isDirect isDirect 를 호출하여 확인할 수 있습니다. 이 메서드는 성능에 중요한 코드에서 명시적 버퍼 관리를 수행할 수 있도록 제공됩니다.

"bin"><h2> 이진 데이터 </h2에 대한 액세스>

이 클래스는 를 제외한 boolean다른 모든 기본 형식의 값을 읽고 쓰는 메서드를 정의합니다. 기본 값은 버퍼의 현재 바이트 순서에 따라 바이트 시퀀스로 변환되며, 메서드를 통해 #order order 검색 및 수정될 수 있습니다. 특정 바이트 순서는 클래스의 ByteOrder 인스턴스로 표시됩니다. 바이트 버퍼의 초기 순서는 항상 ByteOrder#BIG_ENDIAN BIG_ENDIAN입니다.

다른 유형의 값 시퀀스인 다른 유형의 이진 데이터에 액세스하기 위해 이 클래스는 각 형식에 대한 절대 및 상대 getput 메서드 패밀리를 정의합니다. 예를 들어 32비트 부동 소수점 값의 경우 이 클래스는 다음을 정의합니다.

<인용구>

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)}

</인용구>

해당 메서드는 , , short, longintdouble형식char에 대해 정의됩니다. 절대 getput 메서드의 인덱스 매개 변수는 읽거나 쓰는 형식이 아닌 바이트 단위입니다.

"views">

동일한 형식의 값 시퀀스인 동종 이진 데이터에 액세스하기 위해 이 클래스는 지정된 바이트 버퍼의 를 만들 수 있는 메서드를 정의합니다. 뷰 버퍼는 콘텐츠가 바이트 버퍼에 의해 뒷받침되는 또 다른 버퍼입니다. 바이트 버퍼의 콘텐츠에 대한 변경 내용은 뷰 버퍼에 표시되고 그 반대의 경우도 마찬가지입니다. 두 버퍼의 위치, 제한 및 표시 값은 독립적입니다. 예를 들어 메서드는 #asFloatBuffer() asFloatBuffer 메서드가 호출되는 바이트 버퍼에 의해 뒷받침되는 클래스의 FloatBuffer instance 만듭니다. 해당 뷰 만들기 메서드는 , , short, longintdouble형식char에 대해 정의됩니다.

뷰 버퍼는 위에서 설명한 형식별 getput 메서드 제품군에 비해 세 가지 중요한 이점이 있습니다.

<ul>

<리튬>

뷰 버퍼는 바이트가 아니라 해당 값의 형식별 크기를 기준으로 인덱싱됩니다.

</리튬>

<리튬>

뷰 버퍼는 버퍼와 배열 또는 동일한 형식의 다른 버퍼 간에 연속된 값 시퀀스를 전송할 수 있는 상대적인 대량 가져오기put 메서드를 제공합니다. 및

</리튬>

<리튬>

뷰 버퍼는 지원 바이트 버퍼가 직접인 경우에만 직접적이기 때문에 잠재적으로 훨씬 더 효율적입니다.

</리튬>

</ul>

뷰 버퍼의 바이트 순서는 뷰를 만들 때 해당 바이트 버퍼의 바이트 순서로 고정됩니다.

<h2> 호출 체인 </h2>

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

문의 시퀀스

<인용구>

bb.putInt(0xCAFEBABE);
            bb.putShort(3);
            bb.putShort(45);

</인용구>

예를 들어 을 단일 문으로 바꿀 수 있습니다.

<인용구>

bb.putInt(0xCAFEBABE).putShort(3).putShort(45);

</인용구>

1.4에 추가되었습니다.

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

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

생성자

ByteBuffer(IntPtr, JniHandleOwnership)

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

속성

Char

현재 위치에 있는 문자를 반환하고 위치를 2씩 늘입니다.

Class

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

(다음에서 상속됨 Object)
Double

현재 위치에서 double을 반환하고 위치를 8씩 늘입니다.

Float

현재 위치에 있는 float를 반환하고 위치를 4씩 늘입니다.

Handle

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

(다음에서 상속됨 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()

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

AsCharBuffer()

이 바이트 버퍼의 뷰를 char 버퍼로 만듭니다.

AsDoubleBuffer()

이 바이트 버퍼의 뷰를 이중 버퍼로 만듭니다.

AsFloatBuffer()

이 바이트 버퍼의 뷰를 float 버퍼로 만듭니다.

AsIntBuffer()

이 바이트 버퍼의 뷰를 int 버퍼로 만듭니다.

AsLongBuffer()

이 바이트 버퍼의 보기를 긴 버퍼로 만듭니다.

AsReadOnlyBuffer()

이 버퍼의 콘텐츠를 공유하는 새로운 읽기 전용 바이트 버퍼를 만듭니다.

AsShortBuffer()

이 바이트 버퍼의 뷰를 짧은 버퍼로 만듭니다.

Capacity()

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

(다음에서 상속됨 Buffer)
Clear()

이 버퍼를 지웁니다.

(다음에서 상속됨 Buffer)
Clone()

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

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

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

CompareTo(ByteBuffer)

이 버퍼를 다른 버퍼와 비교합니다.

Dispose()

바이트 버퍼입니다.

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

바이트 버퍼입니다.

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

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

Equals(Object)

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

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

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

(다음에서 상속됨 Buffer)
Get()

상대 get 메서드입니다.

Get(Byte[])

상대 대량 가져오기 메서드입니다.

Get(Byte[], Int32, Int32)

상대 대량 가져오기 메서드입니다.

Get(Int32)

절대 get 메서드입니다.

GetChar(Int32)

char 값을 읽는 절대 get 메서드입니다.

GetDirectBufferAddress()

바이트 버퍼입니다.

(다음에서 상속됨 Buffer)
GetDouble(Int32)

double 값을 읽는 절대 get 메서드입니다.

GetFloat(Int32)

float 값을 읽기 위한 절대 get 메서드입니다.

GetHashCode()

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

(다음에서 상속됨 Object)
GetInt(Int32)

int 값을 읽기 위한 절대 get 메서드입니다.

GetLong(Int32)

long 값을 읽는 절대 get 메서드입니다.

GetShort(Int32)

짧은 값을 읽는 절대 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)

절대 put 메서드   (선택적 작업).

Put(SByte)

상대 put 메서드   (선택적 작업).

PutChar(Char)

nbsp; 에&char 값을 작성하기 위한 상대 put 메서드입니다. (선택적 작업).

PutChar(Int32, Char)

nbsp; 에&char 값을 작성하기 위한 absolute put 메서드입니다. (선택적 작업).

PutDouble(Double)

nbsp; 에&double 값을 작성하기 위한 상대 put 메서드입니다. (선택적 작업).

PutDouble(Int32, Double)

nbsp; 에&double 값을 작성하기 위한 absolute put 메서드입니다. (선택적 작업).

PutFloat(Int32, Single)

nbsp; 에&float 값을 작성하기 위한 absolute put 메서드입니다. (선택적 작업).

PutFloat(Single)

nbsp; 에&float 값을 작성하기 위한 상대 put 메서드입니다. (선택적 작업).

PutInt(Int32)

nbsp; 에&int 값을 작성하기 위한 상대 put 메서드입니다. (선택적 작업).

PutInt(Int32, Int32)

nbsp; 에&int 값을 작성하기 위한 absolute put 메서드입니다. (선택적 작업).

PutLong(Int32, Int64)

nbsp; 에&긴 값을 작성하기 위한 absolute put 메서드입니다. (선택적 작업).

PutLong(Int64)

nbsp; 에&긴 값을 작성하기 위한 상대 put 메서드입니다. (선택적 작업).

PutShort(Int16)

nbsp; 에&짧은 값을 작성하기 위한 상대 put 메서드입니다. (선택적 작업).

PutShort(Int32, Int16)

nbsp; 에&짧은 값을 작성하기 위한 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()

현재 스레드가 각성될 때까지 대기하도록 합니다. 일반적으로 <알림을<> 받>거나<<> 중단/em>합니다.

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

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

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

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

(다음에서 상속됨 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)

바이트 버퍼입니다.

적용 대상