JavaTM Platform
Standard Ed. 6

java.nio
클래스 ByteBuffer

java.lang.Object 
  상위를 확장 java.nio.Buffer 
      상위를 확장 java.nio.ByteBuffer
모든 구현된 인터페이스:
Comparable <ByteBuffer >
직계의 기존의 서브 클래스:
MappedByteBuffer


public abstract class ByteBuffer
extends Buffer
implements Comparable <ByteBuffer >

byte 버퍼입니다.

이 클래스는, byte 버퍼에 대한 조작을 다음의 6 개의 카테고리로 분류합니다.

byte 버퍼를 작성하려면 , 버퍼의 컨텐츠에 용량을 할당하는할당 조작을 실행하는지, 기존의 바이트 배열을 버퍼에 합니다.

다이렉트 버퍼와 비다이렉트 버퍼

byte 버퍼에는, 「다이렉트」버퍼와 「비다이렉트」버퍼가 있습니다. 다이렉트 byte 버퍼의 경우, Java 가상 머신은, 네이티브의 입출력 조작을 직접 실행하려고 합니다. 이것은, 기본이 되는 operating system 고유의 입출력 조작을 호출할 때, 중간 버퍼를 거치지 않는다는 것입니다.

다이렉트 byte 버퍼는, 이 클래스의 팩토리 메소드 allocateDirect 를 호출하면(자) 작성됩니다. 일반적으로은, 이쪽의 버퍼 쪽이, 비다이렉트 버퍼보다 할당 및 해제 코스트가 약간 비싸집니다. 다이렉트 버퍼의 내용이 표준의 가베지 컬렉트된 heap의 외부에 있다면, 어플리케이션의 메모리 사용량(footprint)에 대한 영향은 정확히 알 수 없는 것입니다. 이것으로부터, 다이렉트 버퍼에는, 기본이 되는 시스템 고유의 입출력 조작에 종속되는, 수명이 길게 용량의 큰 버퍼를 지정하는 것을 추천합니다. 일반적으로, 다이렉트 버퍼의 할당은, 프로그램의 성능을 충분히 개선할 수 있을 전망이 있는 경우에게만 실시해야 합니다.

다이렉트 byte 버퍼는, 파일의 특정의 영역을 메모리에 직접매핑 하는 방법에서도 작성할 수 있습니다. Java 플랫폼의 구현에 따라서는, JNI 를 개입시켜 native code로부터 다이렉트 byte 버퍼를 생성하는 기능이 옵션으로 지원되고 있을 가능성이 있습니다. 이러한 종류의 버퍼의 인스턴스가, 메모리내의 액세스 할 수 없는 영역을 참조했을 경우, 그 영역에 액세스 하려고 해도 버퍼의 컨텐츠는 변경되지 않고, 액세스시 또는 액세스 후에 어떠한 예외가 throw 됩니다.

특정의 byte 버퍼가 다이렉트 버퍼, 비다이렉트 버퍼의 어디에서 있을까를 판단하려면 ,isDirect 메소드를 호출합니다. 이 메소드를 사용하면(자), 성능이 중시되는 코드내에서 명시적으로 버퍼 관리를 실시할 수 있습니다.

바이너리 데이터에의 액세스

이 클래스에는, 그 외의 모든 원시형 (boolean 를 제외한다)의 값의 read와 기입을 실시하는 메소드가 정의되고 있습니다. 프리미티브(primitive)치와 바이트 순서와의 상호 변환은, 버퍼의 현재의 바이트 순서에 따라 행해집니다. 바이트 순서를 취득 및 변경하려면 ,order 메소드를 사용합니다. 특정의 바이트 순서는,ByteOrder 클래스의 인스턴스로 나타내집니다. byte 버퍼의 초기 순서는, 항상 BIG_ENDIAN 입니다.

이종 바이너리 데이터, 즉 형태가 다른 값의 순서에 액세스 할 수 있도록(듯이) 하기 위한(해), 이 클래스는, 형태 마다 일련의 절대 및 상대 get/put 메소드의 패밀리를 정의합니다. 예를 들어, 32 비트의 부동 소수점수(실수) (float 치)의 경우, 다음의 메소드가 정의됩니다.

 float  getFloat() 
 float  getFloat(int index) 
  void  putFloat(float f) 
  void  putFloat(int index, float f) 

char,short,int,long,double 의 각 형에도, 같은 메소드가 정의되고 있습니다. 절대 get/put 메소드의 인덱스 파라미터의 단위는, 읽어들여 또는 기입의 대상이 되는 형태는 아니고, 바이트입니다.

동종의 바이너리 데이터, 즉 같은 형태의 값의 순서에 액세스 할 수 있도록(듯이) 하기 위한(해), 이 클래스에는, 지정된 byte 버퍼의 「뷰」를 작성하는 메소드가 정의되고 있습니다. 「뷰 버퍼(view buffer)」란, byte 버퍼에 연동한 내용을 가지는, 다른 버퍼입니다. byte 버퍼의 내용으로 변경을 더하면(자), 뷰 버퍼(view buffer)에도 그 내용이 반영됩니다. 반대로, 뷰 버퍼(view buffer)의 내용으로 변경을 더하면(자), byte 버퍼에도 그 내용이 반영됩니다. 이 2 개의 버퍼의 위치, 리밋트, 마크의 값은, 각각 독립하고 있습니다. 예를 들어,asFloatBuffer 메소드는, 이 메소드의 호출원의 byte 버퍼에 연동한 FloatBuffer 클래스의 인스턴스를 생성합니다. char,short,int,long,double 의 각 형에 대해서도, 같은 뷰 작성 메소드가 정의되고 있습니다.

뷰 버퍼(view buffer)에는, 전술한 일련의 형태 고유의 get/put 메소드에 우수한 중요한 이점이 3 개 있습니다.

뷰 버퍼(view buffer)의 바이트 순서는, 뷰의 생성시에 byte 버퍼와 같은 것에 고정됩니다.

호출의 연쇄

이 클래스의 메소드중 반환값을 돌려주지 않는 것은, 자신을 호출한 버퍼의 정보를 돌려줍니다. 이것을 응용해, 메소드 호출을 연쇄시킬 수가 있습니다. 예를 들어, 다음과 같은 연속한 문장이 있다고 합시다.

 bb.putInt(0xCAFEBABE);
 bb.putShort(3);
 bb.putShort(45);
이것들은, 다음의 한 문장으로 옮겨놓을 수 있습니다.
 bb.putInt(0xCAFEBABE). putShort(3). putShort(45);

도입된 버젼:
1.4

메소드의 개요
static ByteBuffer allocate (int capacity)
          새로운 byte 버퍼를 할당합니다.
static ByteBuffer allocateDirect (int capacity)
          새로운 다이렉트 byte 버퍼를 할당합니다.
 byte[] array ()
          이 버퍼를 보조하는 바이트 배열을 돌려줍니다 (임의 조작).
 int arrayOffset ()
          현재의 버퍼의 보조 배열내에 있는, 이 버퍼의 최초의 요소의 오프셋(offset)를 돌려줍니다 (옵션).
abstract  CharBuffer asCharBuffer ()
          문자 버퍼로서 이 byte 버퍼의 뷰를 작성합니다.
abstract  DoubleBuffer asDoubleBuffer ()
          double 버퍼로서 이 byte 버퍼의 뷰를 작성합니다.
abstract  FloatBuffer asFloatBuffer ()
          float 버퍼로서 이 byte 버퍼의 뷰를 작성합니다.
abstract  IntBuffer asIntBuffer ()
          int 버퍼로서 이 byte 버퍼의 뷰를 작성합니다.
abstract  LongBuffer asLongBuffer ()
          long 버퍼로서 이 byte 버퍼의 뷰를 작성합니다.
abstract  ByteBuffer asReadOnlyBuffer ()
          이 버퍼의 내용을 공유하는 새로운 read 전용 byte 버퍼를 작성합니다.
abstract  ShortBuffer asShortBuffer ()
          short 버퍼로서 이 byte 버퍼의 뷰를 작성합니다.
abstract  ByteBuffer compact ()
          현재의 버퍼를 압축합니다 (옵션).
 int compareTo (ByteBuffer  that)
          현재의 버퍼를 다른 버퍼와 비교합니다.
abstract  ByteBuffer duplicate ()
          이 버퍼의 내용을 공유하는 새로운 byte 버퍼를 작성합니다.
 boolean equals (Object  ob)
          현재의 버퍼가 다른 객체와 등가일지 어떨지를 판단합니다.
abstract  byte get ()
          상대 「get」메소드입니다.
 ByteBuffer get (byte[] dst)
          상대 일괄 「get」메소드입니다.
 ByteBuffer get (byte[] dst, int offset, int length)
          상대 일괄 「get」메소드입니다.
abstract  byte get (int index)
          절대 「get」메소드입니다.
abstract  char getChar ()
          char 값를 읽어내는 상대 「get」메소드입니다.
abstract  char getChar (int index)
          char 값를 읽어내는 절대 「get」메소드입니다.
abstract  double getDouble ()
          double 치를 읽어내는 상대 「get」메소드입니다.
abstract  double getDouble (int index)
          double 치를 읽어내는 절대 「get」메소드입니다.
abstract  float getFloat ()
          float 치를 읽어내는 상대 「get」메소드입니다.
abstract  float getFloat (int index)
          float 치를 읽어내는 절대 「get」메소드입니다.
abstract  int getInt ()
          int 치를 읽어내는 상대 「get」메소드입니다.
abstract  int getInt (int index)
          int 치를 읽어내는 절대 「get」메소드입니다.
abstract  long getLong ()
          long 치를 읽어내는 상대 「get」메소드입니다.
abstract  long getLong (int index)
          long 치를 읽어내는 절대 「get」메소드입니다.
abstract  short getShort ()
          short 치를 읽어내는 상대 「get」메소드입니다.
abstract  short getShort (int index)
          short 치를 읽어내는 절대 「get」메소드입니다.
 boolean hasArray ()
          이 버퍼가 액세스 가능한 바이트 배열에 연동할지 어떨지를 판단합니다.
 int hashCode ()
          현재의 버퍼의 현재의 해시 코드를 돌려줍니다.
abstract  boolean isDirect ()
          이 byte 버퍼가 다이렉트 버퍼일지 어떨지를 판단합니다.
 ByteOrder order ()
          현재의 버퍼의 바이트 순서를 가져옵니다.
 ByteBuffer order (ByteOrder  bo)
          이 버퍼의 바이트 순서를 변경합니다.
abstract  ByteBuffer put (byte b)
          상대 「put」메소드입니다 (옵션).
 ByteBuffer put (byte[] src)
          상대 일괄 「put」메소드입니다 (옵션).
 ByteBuffer put (byte[] src, int offset, int length)
          상대 일괄 「put」메소드입니다 (옵션).
 ByteBuffer put (ByteBuffer  src)
          상대 일괄 「put」메소드입니다 (옵션).
abstract  ByteBuffer put (int index, byte b)
          절대 「put」메소드입니다 (옵션).
abstract  ByteBuffer putChar (char value)
          char 값를 기입하는 상대 「put」메소드입니다 (임의 조작).
abstract  ByteBuffer putChar (int index, char value)
          char 값를 기입하는 절대 「put」메소드입니다 (임의 조작).
abstract  ByteBuffer putDouble (double value)
          double 치를 기입하는 상대 「put」메소드입니다 (임의 조작).
abstract  ByteBuffer putDouble (int index, double value)
          double 치를 기입하는 절대 「put」메소드입니다 (임의 조작).
abstract  ByteBuffer putFloat (float value)
          float 치를 기입하는 상대 「put」메소드입니다 (임의 조작).
abstract  ByteBuffer putFloat (int index, float value)
          float 치를 기입하는 절대 「put」메소드입니다 (임의 조작).
abstract  ByteBuffer putInt (int value)
          int 치를 기입하는 상대 「put」메소드입니다 (임의 조작).
abstract  ByteBuffer putInt (int index, int value)
          int 치를 기입하는 절대 「put」메소드입니다 (임의 조작).
abstract  ByteBuffer putLong (int index, long value)
          long 치를 기입하는 절대 「put」메소드입니다 (임의 조작).
abstract  ByteBuffer putLong (long value)
          long 치를 기입하는 상대 「put」메소드입니다 (임의 조작).
abstract  ByteBuffer putShort (int index, short value)
          short 치를 기입하는 절대 「put」메소드입니다 (임의 조작).
abstract  ByteBuffer putShort (short value)
          short 치를 기입하는 상대 「put」메소드입니다 (임의 조작).
abstract  ByteBuffer slice ()
          이 버퍼의 공유의 서브 순서를 내용으로 하는 새로운 byte 버퍼를 작성합니다.
 String toString ()
          이 버퍼 상태를 요약한 캐릭터 라인을 돌려줍니다.
static ByteBuffer wrap (byte[] array)
          바이트 배열을 버퍼에 랩 합니다.
static ByteBuffer wrap (byte[] array, int offset, int length)
          바이트 배열을 버퍼에 랩 합니다.
 
클래스 java.nio. Buffer 로부터 상속된 메소드
capacity , clear , flip , hasRemaining , isReadOnly , limit , limit , mark , position , position , remaining , reset , rewind
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , finalize , getClass , notify , notifyAll , wait , wait , wait
 

메소드의 상세

allocateDirect

public static ByteBuffer  allocateDirect(int capacity)
새로운 다이렉트 byte 버퍼를 할당합니다.

새로운 버퍼의 위치는 0, 리밋트는 용량과 같은 값이 됩니다. 마크는 정의되지 않습니다. 보조 배열 을 이용할지 어떨지는 지정되지 않습니다.

파라미터:
capacity - 새로운 버퍼의 용량 (바이트)
반환값:
새로운 byte 버퍼
예외:
IllegalArgumentException - capacity 가 부의 정수인 경우

allocate

public static ByteBuffer  allocate(int capacity)
새로운 byte 버퍼를 할당합니다.

새로운 버퍼의 위치는 0, 리밋트는 용량과 같은 값이 됩니다. 마크는 정의되지 않습니다. 이 버퍼는보조 배열 을 이용해, 그배열 오프셋(offset) 는 0 이 됩니다.

파라미터:
capacity - 새로운 버퍼의 용량 (바이트)
반환값:
새로운 byte 버퍼
예외:
IllegalArgumentException - capacity 가 부의 정수인 경우

wrap

public static ByteBuffer  wrap(byte[] array,
                              int offset,
                              int length)
바이트 배열을 버퍼에 랩 합니다.

새로운 버퍼는 지정된 바이트 배열에 의해 보조됩니다. 버퍼로 변경을 더하면(자) 배열도 변경되어 배열로 변경을 더하면(자) 버퍼도 변경됩니다. 새로운 버퍼의 용량은 array.length, 위치는 offset, 리밋트는 offset + length 가 됩니다. 마크는 정의되지 않습니다. 지정된 배열이보조 배열 이 되어, 그배열 오프셋(offset) 는 0 이 됩니다.

파라미터:
array - 새로운 버퍼를 보조하는 배열
offset - 사용하는 서브 배열의 오프셋(offset). array.length 이하의 부가 아닌 값이 아니면 안된다. 새로운 버퍼의 위치는, 이 값으로 설정되는
length - 사용하는 서브 배열의 오프셋(offset). array.length - offset 이하의 부가 아닌 값이 아니면 안된다. 새로운 버퍼의 리밋트는,offset + length 로 설정된다
반환값:
새로운 byte 버퍼
예외:
IndexOutOfBoundsException - offset 파라미터와 length 파라미터의 전제 조건이 채워지지 않은 경우

wrap

public static ByteBuffer  wrap(byte[] array)
바이트 배열을 버퍼에 랩 합니다.

새로운 버퍼는 지정된 바이트 배열에 의해 보조됩니다. 버퍼로 변경을 더하면(자) 배열도 변경되어 배열로 변경을 더하면(자) 버퍼도 변경됩니다. 새로운 버퍼의 용량과 리밋트는 array.length, 위치는 0 이 됩니다. 마크는 정의되지 않습니다. 지정된 배열이보조 배열 이 되어, 그배열 오프셋(offset) 는 0 이 됩니다.

파라미터:
array - 현재의 버퍼를 보조하는 배열
반환값:
새로운 byte 버퍼

slice

public abstract ByteBuffer  slice()
이 버퍼의 공유의 서브 순서를 내용으로 하는 새로운 byte 버퍼를 작성합니다.

새로운 버퍼의 컨텐츠는, 현재의 버퍼의 현재 위치로부터 시작됩니다. 현재의 버퍼의 컨텐츠로 변경을 더하면(자), 그 내용이 새로운 버퍼에 반영됩니다. 새로운 버퍼의 컨텐츠로 변경을 더하면(자), 그 내용이 현재의 버퍼에 반영됩니다. 2 개의 버퍼의 위치, 리밋트, 마크의 값은 각각 다릅니다.

새로운 버퍼의 위치는 0, 용량과 리밋트는 이 버퍼내에 남아 있는 바이트수가 됩니다. 마크는 정의되지 않습니다. 새로운 버퍼는, 현재의 버퍼가 다이렉트 버퍼인 경우에 한정해 다이렉트 버퍼가 됩니다. 또, 현재의 버퍼가 읽어내 전용 버퍼인 경우에 한정해 읽기 전용 버퍼가 됩니다.

반환값:
새로운 byte 버퍼

duplicate

public abstract ByteBuffer  duplicate()
이 버퍼의 내용을 공유하는 새로운 byte 버퍼를 작성합니다.

새로운 버퍼의 컨텐츠는, 현재의 버퍼의 컨텐츠와 같게 됩니다. 현재의 버퍼의 컨텐츠로 변경을 더하면(자), 그 내용이 새로운 버퍼에 반영됩니다. 새로운 버퍼의 컨텐츠로 변경을 더하면(자), 그 내용이 현재의 버퍼에 반영됩니다. 2 개의 버퍼의 위치, 리밋트, 마크의 값은 각각 다릅니다.

새로운 버퍼의 용량, 리밋트, 위치, 마크의 값은, 현재의 버퍼의 대응하는 값과 같게 됩니다. 새로운 버퍼는, 현재의 버퍼가 다이렉트 버퍼인 경우에 한정해 다이렉트 버퍼가 됩니다. 또, 현재의 버퍼가 읽어내 전용 버퍼인 경우에 한정해 읽기 전용 버퍼가 됩니다.

반환값:
새로운 byte 버퍼

asReadOnlyBuffer

public abstract ByteBuffer  asReadOnlyBuffer()
이 버퍼의 내용을 공유하는 새로운 read 전용 byte 버퍼를 작성합니다.

새로운 버퍼의 컨텐츠는, 현재의 버퍼의 컨텐츠와 같게 됩니다. 현재의 버퍼의 컨텐츠로 변경을 더하면(자), 그 내용이 새로운 버퍼에 반영됩니다. 그러나, 새로운 버퍼 자체는 읽어내 전용이며, 그 공유 컨텐츠를 변경할 수 없습니다. 2 개의 버퍼의 위치, 리밋트, 마크의 값은 각각 다릅니다.

새로운 버퍼의 용량, 리밋트, 위치, 마크의 값은, 현재의 버퍼의 대응하는 값과 같게 됩니다.

현재의 버퍼가 읽어내 전용의 경우, 이 메소드의 동작은 duplicate 메소드와 완전히 같게 됩니다.

반환값:
새로운 read 전용 byte 버퍼

get

public abstract byte get()
상대 「get」메소드입니다. 이 버퍼의 현재 위치로부터 바이트를 읽어들여, 현재 위치의 값을 증가합니다.

반환값:
버퍼의 현재 위치의 바이트
예외:
BufferUnderflowException - 버퍼의 현재 위치가 리밋트 이상인 경우

put

public abstract ByteBuffer  put(byte b)
상대 「put」메소드입니다 (옵션).

버퍼의 현재 위치로 지정된 바이트를 기입해, 현재 위치의 값을 증가합니다.

파라미터:
b - 기입해지는 바이트
반환값:
현재의 버퍼
예외:
BufferOverflowException - 현재의 버퍼의 현재 위치가 리밋트 이상인 경우
ReadOnlyBufferException - 현재의 버퍼가 읽어들여 전용 버퍼인 경우

get

public abstract byte get(int index)
절대 「get」메소드입니다. 지정된 인덱스 위치의 바이트를 읽어들입니다.

파라미터:
index - 바이트의 read 위치를 나타내는 인덱스
반환값:
지정된 인덱스 위치의 바이트
예외:
IndexOutOfBoundsException - index 가 부의 수인 경우, 또는 버퍼의 리밋트 이상인 경우

put

public abstract ByteBuffer  put(int index,
                               byte b)
절대 「put」메소드입니다 (옵션).

이 버퍼의 지정된 인덱스 위치로 지정된 바이트를 기입합니다.

파라미터:
index - 바이트의 기입처를 나타내는 인덱스
b - 기입해지는 바이트치
반환값:
현재의 버퍼
예외:
IndexOutOfBoundsException - index 가 부의 수인 경우, 또는 버퍼의 리밋트 이상인 경우
ReadOnlyBufferException - 현재의 버퍼가 읽어들여 전용 버퍼인 경우

get

public ByteBuffer  get(byte[] dst,
                      int offset,
                      int length)
상대 일괄 「get」메소드입니다.

이 메소드는, 이 버퍼로부터 지정된 배열에 바이트를 전송 합니다. 이 버퍼내에 남아 있는 바이트수가 요구에 못 미친 경우 (즉,length > remaining() 인 경우), 바이트는 일절 전송 되지 않고,BufferUnderflowException 가 throw 됩니다.

그 이외의 경우, 이 메소드는, 이 버퍼의 현재 위치로부터 length 바이트가 지정된 배열의 지정된 오프셋(offset) 위치에 카피합니다. 그때마다, 현재의 버퍼의 위치가 length 두개증가합니다.

이 메소드를 src.get(dst,  off,  len) 의 형식에서 호출하면(자), 이하의 루프와 완전히 같은 결과가 됩니다.

for (int i = off; i < off + len; i++)
dst[i] = src.get(); 
다만, 이 버퍼내에 충분한 수의 byte 수가 있는 것을 최초로 확인하는 동작은 제외합니다. 또, 이 메소드를 사용하는 편이 루프보다 아득하게 효율적입니다.

파라미터:
dst - 바이트의 기입처가 되는 배열
offset - 최초의 바이트의 기입처가 되는 배열내의 오프셋(offset). dst.length 이하의 부가 아닌 값이 아니면 안되는
length - 지정된 배열에 기입해지는 최대 바이트수. dst.length - offset 이하의 부가 아닌 값이 아니면 안된다
반환값:
현재의 버퍼
예외:
BufferUnderflowException - 이 버퍼내에 남아 있는 바이트수가 length 보다 적은 경우
IndexOutOfBoundsException - offset 파라미터와 length 파라미터의 전제 조건이 채워지지 않은 경우

get

public ByteBuffer  get(byte[] dst)
상대 일괄 「get」메소드입니다.

이 메소드는, 이 버퍼로부터 지정된 배열에 바이트를 전송 합니다. 이 메소드를 src.get(a) 의 형식에서 호출하면(자), 이하의 호출과 같은 결과가 됩니다.

src.get(a, 0, a.length) 

반환값:
현재의 버퍼
예외:
BufferUnderflowException - 이 버퍼내에 남아 있는 바이트수가 length 보다 적은 경우

put

public ByteBuffer  put(ByteBuffer  src)
상대 일괄 「put」메소드입니다 (옵션).

이 메소드는, 지정된 소스 버퍼내에 남아 있는 바이트를 이 버퍼에 전송 합니다. 소스 버퍼내에 남아 있는 바이트수가 이 버퍼내에 남아 있는 바이트수보다 많은 경우 (즉,src.remaining() > remaining() 인 경우), 바이트는 일절 전송 되지 않고,BufferOverflowException 가 throw 됩니다.

그 이외의 경우, 이 메소드는, 지정된 버퍼의 현재 위치로부터 이 버퍼의 현재 위치에 n = src.remaining() 바이트를 카피합니다. 그때마다, 양쪽 모두의 버퍼의 위치가 n 두개증가합니다.

이 메소드를 dst.put(src) 의 형식에서 호출하면(자), 이하의 루프와 완전히 같은 결과가 됩니다.

while (src.hasRemaining())
dst.put(src.get()); 
다만, 현재의 버퍼내에 충분한 용량이 있는 것을 최초로 확인하는 동작은, 이 메소드에 고유합니다. 또, 이 메소드 쪽이 루프보다 쭉 효율적입니다.

파라미터:
src - 바이트의 read처가 되는 소스 버퍼 (이 버퍼 이외)
반환값:
현재의 버퍼
예외:
BufferOverflowException - 소스 버퍼내에 남아 있는 바이트수에 대해서, 이 버퍼내의 용량이 부족한 경우
IllegalArgumentException - 소스 버퍼로서 현재의 버퍼를 지정했을 경우
ReadOnlyBufferException - 현재의 버퍼가 읽어들여 전용 버퍼인 경우

put

public ByteBuffer  put(byte[] src,
                      int offset,
                      int length)
상대 일괄 「put」메소드입니다 (옵션).

이 메소드는, 지정된 소스 배열로부터 이 버퍼에 바이트를 전송 합니다. 배열로부터 카피하는 바이트수가 이 버퍼내에 남아 있는 바이트수보다 많은 경우 (즉,length > remaining() 인 경우), 바이트는 일절 전송 되지 않고,BufferOverflowException 가 throw 됩니다.

그 이외의 경우, 이 메소드는, 지정된 배열의 지정된 오프셋(offset) 위치로부터 이 버퍼의 현재 위치에 length 분 바이트를 카피합니다. 그때마다, 현재의 버퍼의 위치가 length 두개증가합니다.

이 메소드를 dst.put(src,  off,  len) 의 형식에서 호출하면(자), 이하의 루프와 완전히 같은 결과가 됩니다.

for (int i = off; i < off + len; i++)
dst.put(a[i]); 
다만, 현재의 버퍼내에 충분한 용량이 있는 것을 최초로 확인하는 동작은, 이 메소드에 고유합니다. 또, 이 메소드 쪽이 루프보다 쭉 효율적입니다.

파라미터:
src - 바이트의 read처가 되는 배열
offset - 읽어들이는 최초의 바이트의 배열내의 오프셋(offset). array.length 이하의 부가 아닌 값이 아니면 안되는
length - 주어진 배열로부터 읽어들이는 바이트수. array.length - offset 이하의 부가 아닌 값이 아니면 안된다
반환값:
현재의 버퍼
예외:
BufferOverflowException - 현재의 버퍼내에 남아 있는 용량이 부족한 경우
IndexOutOfBoundsException - offset 파라미터와 length 파라미터의 전제 조건이 채워지지 않은 경우
ReadOnlyBufferException - 현재의 버퍼가 읽어들여 전용 버퍼인 경우

put

public final ByteBuffer  put(byte[] src)
상대 일괄 「put」메소드입니다 (옵션).

이 메소드는, 소스가 되는 지정된 바이트 배열의 내용 전체를 이 버퍼에 전송 합니다. 이 메소드를 dst.put(a) 의 형식에서 호출하면(자), 이하의 호출과 같은 결과가 됩니다.

dst.put(a, 0, a.length) 

반환값:
현재의 버퍼
예외:
BufferOverflowException - 현재의 버퍼내에 남아 있는 용량이 부족한 경우
ReadOnlyBufferException - 현재의 버퍼가 읽어들여 전용 버퍼인 경우

hasArray

public final boolean hasArray()
이 버퍼가 액세스 가능한 바이트 배열에 연동할지 어떨지를 판단합니다.

이 메소드의 반환값이 true 이면,array 메소드 및 arrayOffset 메소드를 안전하게 호출할 수가 있습니다.

정의:
클래스 Buffer 내의 hasArray
반환값:
현재의 버퍼가 배열에 연동하고 있어, read 전용이 아닌 경우에 한해 true

array

public final byte[] array()
이 버퍼를 보조하는 바이트 배열을 돌려줍니다 (임의 조작).

현재의 버퍼의 컨텐츠로 변경을 더하면(자), 반환되는 배열의 컨텐츠도 변경됩니다. 그 역도 같습니다.

이 메소드를 호출하기 전에 hasArray 메소드를 호출해, 현재의 버퍼가 액세스 가능한 보조 배열을 가지고 있는 것을 확인합니다.

정의:
클래스 Buffer 내의 array
반환값:
현재의 버퍼를 보조하는 배열
예외:
ReadOnlyBufferException - 현재의 버퍼가 배열에 연동하고 있어, 게다가 읽어들여 전용인 경우
UnsupportedOperationException - 현재의 버퍼가 액세스 가능한 배열을 이용하지 않는 경우

arrayOffset

public final int arrayOffset()
현재의 버퍼의 보조 배열내에 있는, 이 버퍼의 최초의 요소의 오프셋(offset)를 돌려줍니다 (옵션).

현재의 버퍼가 배열에 연동하고 있으면, 그 위치 p 가 배열의 인덱스 p + arrayOffset() 와 일치합니다.

이 메소드를 호출하기 전에 hasArray 메소드를 호출해, 현재의 버퍼가 액세스 가능한 보조 배열을 가지고 있는 것을 확인합니다.

정의:
클래스 Buffer 내의 arrayOffset
반환값:
현재의 버퍼의 배열내에 있는, 이 버퍼의 최초의 요소의 오프셋(offset)
예외:
ReadOnlyBufferException - 현재의 버퍼가 배열에 연동하고 있어, 게다가 읽어들여 전용인 경우
UnsupportedOperationException - 현재의 버퍼가 액세스 가능한 배열을 이용하지 않는 경우

compact

public abstract ByteBuffer  compact()
현재의 버퍼를 압축합니다 (옵션).

버퍼의 현재 위치로부터 리밋트까지의 사이에 바이트가 존재하는 경우, 이것들을 버퍼의 선두에 카피합니다. 즉, 인덱스 위치 p = position() 의 바이트가 인덱스 0 에 카피되어 인덱스 위치 p + 1 의 바이트가 인덱스 1 에 카피된다고 하는 것입니다. 인덱스 위치 limit() - 1 의 바이트가 인덱스 n = limit() - 1 - p 에 카피될 때까지, 같은 처리가 반복해집니다. 최종적으로 버퍼의 위치는 n+1 로 설정되어 리밋트는 용량의 값과 동일해집니다. 마크는 파기됩니다.

버퍼의 위치는, 0 은 아니고, 카피되는 바이트수로 동일해집니다. 따라서, 이 메소드를 호출한 뒤, 곧바로 다른 상대 「put」메소드를 호출할 수가 있습니다.

이 메소드는, 기입이 종료하지 않았던 경우에 버퍼로부터의 데이터의 기입을 실행하기 전에 호출합니다. 이하의 루프는, 버퍼 buf 를 사용해, 어느 채널로부터 다른 채널에 바이트를 카피합니다.

 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
 }

반환값:
현재의 버퍼
예외:
ReadOnlyBufferException - 현재의 버퍼가 읽어들여 전용 버퍼인 경우

isDirect

public abstract boolean isDirect()
이 byte 버퍼가 다이렉트 버퍼일지 어떨지를 판단합니다.

정의:
클래스 Buffer 내의 isDirect
반환값:
현재의 버퍼가 다이렉트 버퍼인 경우에 한해 true

toString

public String  toString()
이 버퍼 상태를 요약한 캐릭터 라인을 돌려줍니다.

오버라이드(override):
클래스 Object 내의 toString
반환값:
개요 캐릭터 라인

hashCode

public int hashCode()
현재의 버퍼의 현재의 해시 코드를 돌려줍니다.

byte 버퍼의 해시 코드는, 버퍼내에 남아 있는 나머지의 요소, 즉 position() ~ limit() - 1 의 요소인 만큼 의존합니다.

버퍼의 해시 코드는 컨텐츠 의존형입니다. 향후 버퍼의 컨텐츠가 변경되지 않는 것이 분명하지 않은 한, 버퍼를 해시 맵 그 외의 데이터 구조의 키로서 사용하는 것은 피해 주세요.

오버라이드(override):
클래스 Object 내의 hashCode
반환값:
현재의 버퍼의 현재의 해시 코드
관련 항목:
Object.equals(java.lang.Object) , Hashtable

equals

public boolean equals(Object  ob)
현재의 버퍼가 다른 객체와 등가일지 어떨지를 판단합니다.

2 개의 byte 버퍼는, 다음의 경우에 한해 등가입니다.

  1. 요소의 형태가 같다

  2. 버퍼내에 남아 있는 요소수가 같다

  3. 버퍼내에 남아 있는 요소의 순서 (개시 위치와는 무관계)가 각 점으로써 동일하다 (pointwise equal)

byte 버퍼가, 그 외의 형태의 객체와 등가가 될 것은 없습니다.

오버라이드(override):
클래스 Object 내의 equals
파라미터:
ob - 현재의 버퍼와 비교하는 객체
반환값:
현재의 버퍼가 지정된 객체와 등가인 경우에 한해 true
관련 항목:
Object.hashCode() , Hashtable

compareTo

public int compareTo(ByteBuffer  that)
현재의 버퍼를 다른 버퍼와 비교합니다.

2 개의 byte 버퍼를 비교할 때는, 버퍼내에 남아 있는 요소의 순서가 사전순서에 비교됩니다. 이 때, 쌍방의 버퍼내에 남아 있는 순서의 개시 위치는 고려되지 않습니다.

이 때, 쌍방의 버퍼내에 남아 있는 순서의 개시 위치는 고려되지 않습니다.

정의:
인터페이스 Comparable <ByteBuffer > 내의 compareTo
파라미터:
that - 비교 대상의 객체
반환값:
short 버퍼와 그 외의 형태의 객체를 비교할 수 없습니다. 현재의 버퍼가 이제(벌써) 한편의 버퍼보다 작은 경우는 부의 정수, 동일한 경우는 0, 큰 경우는 정의 정수

order

public final ByteOrder  order()
현재의 버퍼의 바이트 순서를 가져옵니다.

바이트 순서는, 복수 바이트의 값을 읽어낼 때나 기입할 때, 그리고 이 byte 버퍼의 뷰가 되는 버퍼를 작성할 경우에 사용합니다. 새롭게 작성된 byte 버퍼의 순서는 항상 BIG_ENDIAN 가 됩니다.

반환값:
현재의 버퍼의 바이트 순서

order

public final ByteBuffer  order(ByteOrder  bo)
이 버퍼의 바이트 순서를 변경합니다.

파라미터:
bo - 새로운 바이트 순서. BIG_ENDIAN , LITTLE_ENDIAN 의 언젠가
반환값:
현재의 버퍼

getChar

public abstract char getChar()
char 값를 읽어내는 상대 「get」메소드입니다.

이 버퍼의 현재 위치로부터 2 바이트를 읽어들여, 현재의 바이트 순서에 따라, 이것들을 char 값로 변환합니다. 위치의 값은, 그때마다 2 두개증가합니다.

반환값:
버퍼의 현재 위치의 char 값
예외:
BufferUnderflowException - 이 버퍼내에 남아 있는 바이트수가 2 바이트보다 적은 경우

putChar

public abstract ByteBuffer  putChar(char value)
char 값를 기입하는 상대 「put」메소드입니다 (임의 조작).

이 버퍼의 현재 위치에, 현재의 바이트 순서에 따라, 지정된 char 값를 포함한 2 바이트를 기입합니다. 위치의 값은, 그때마다 2 두개증가합니다.

파라미터:
value - 기입해지는 char 값
반환값:
현재의 버퍼
예외:
BufferOverflowException - 이 버퍼내에 남아 있는 바이트수가 2 바이트보다 적은 경우
ReadOnlyBufferException - 현재의 버퍼가 읽어들여 전용 버퍼인 경우

getChar

public abstract char getChar(int index)
char 값를 읽어내는 절대 「get」메소드입니다.

지정된 인덱스 위치에 있는 2 바이트를 읽어들여, 현재의 바이트 순서에 따라, 이것들을 char 값로 변환합니다.

파라미터:
index - 바이트의 read 위치를 나타내는 인덱스
반환값:
지정된 인덱스 위치의 char 값
예외:
IndexOutOfBoundsException - index 가 0 보다 작은 값인 경우, 또는 버퍼의 리밋트 이상인 경우, -1

putChar

public abstract ByteBuffer  putChar(int index,
                                   char value)
char 값를 기입하는 절대 「put」메소드입니다 (임의 조작).

이 버퍼의 지정된 인덱스 위치에, 현재의 바이트 순서에 따라, 지정된 char 값를 포함한 2 바이트를 기입합니다.

파라미터:
index - 바이트의 기입처를 나타내는 인덱스
value - 기입해지는 char 값
반환값:
현재의 버퍼
예외:
IndexOutOfBoundsException - index 가 0 보다 작은 값인 경우, 또는 버퍼의 리밋트 이상인 경우, -1
ReadOnlyBufferException - 현재의 버퍼가 읽어들여 전용 버퍼인 경우

asCharBuffer

public abstract CharBuffer  asCharBuffer()
문자 버퍼로서 이 byte 버퍼의 뷰를 작성합니다.

새로운 버퍼의 컨텐츠는, 현재의 버퍼의 현재 위치로부터 시작됩니다. 현재의 버퍼의 컨텐츠로 변경을 더하면(자), 그 내용이 새로운 버퍼에 반영됩니다. 새로운 버퍼의 컨텐츠로 변경을 더하면(자), 그 내용이 현재의 버퍼에 반영됩니다. 2 개의 버퍼의 위치, 리밋트, 마크의 값은 각각 다릅니다.

새로운 버퍼의 위치는 0, 용량과 리밋트는 이 버퍼내에 남아 있는 바이트수의 것 1/2 이 됩니다. 마크는 정의되지 않습니다. 새로운 버퍼는, 현재의 버퍼가 다이렉트 버퍼인 경우에 한정해 다이렉트 버퍼가 됩니다. 또, 현재의 버퍼가 읽어내 전용 버퍼인 경우에 한정해 읽기 전용 버퍼가 됩니다.

반환값:
새로운 문자 버퍼

getShort

public abstract short getShort()
short 치를 읽어내는 상대 「get」메소드입니다.

이 버퍼의 현재 위치로부터 2 바이트를 읽어들여, 현재의 바이트 순서에 따라, 이것들을 short 치로 변환합니다. 위치의 값은, 그때마다 2 두개증가합니다.

반환값:
버퍼의 현재 위치의 short 치
예외:
BufferUnderflowException - 이 버퍼내에 남아 있는 바이트수가 2 바이트보다 적은 경우

putShort

public abstract ByteBuffer  putShort(short value)
short 치를 기입하는 상대 「put」메소드입니다 (임의 조작).

이 버퍼의 현재 위치에, 현재의 바이트 순서에 따라, 지정된 short 치를 포함한 2 바이트를 기입합니다. 위치의 값은, 그때마다 2 두개증가합니다.

파라미터:
value - 기입해지는 short 치
반환값:
현재의 버퍼
예외:
BufferOverflowException - 이 버퍼내에 남아 있는 바이트수가 2 바이트보다 적은 경우
ReadOnlyBufferException - 현재의 버퍼가 읽어들여 전용 버퍼인 경우

getShort

public abstract short getShort(int index)
short 치를 읽어내는 절대 「get」메소드입니다.

지정된 인덱스 위치에 있는 2 바이트를 읽어들여, 현재의 바이트 순서에 따라, 이것들을 short 치로 변환합니다.

파라미터:
index - 바이트의 read 위치를 나타내는 인덱스
반환값:
지정된 인덱스 위치의 short 치
예외:
IndexOutOfBoundsException - index 가 0 보다 작은 값인 경우, 또는 버퍼의 리밋트 이상인 경우, -1

putShort

public abstract ByteBuffer  putShort(int index,
                                    short value)
short 치를 기입하는 절대 「put」메소드입니다 (임의 조작).

이 버퍼의 지정된 인덱스 위치에, 현재의 바이트 순서에 따라, 지정된 short 치를 포함한 2 바이트를 기입합니다.

파라미터:
index - 바이트의 기입처를 나타내는 인덱스
value - 기입해지는 short 치
반환값:
현재의 버퍼
예외:
IndexOutOfBoundsException - index 가 0 보다 작은 값인 경우, 또는 버퍼의 리밋트 이상인 경우, -1
ReadOnlyBufferException - 현재의 버퍼가 읽어들여 전용 버퍼인 경우

asShortBuffer

public abstract ShortBuffer  asShortBuffer()
short 버퍼로서 이 byte 버퍼의 뷰를 작성합니다.

새로운 버퍼의 컨텐츠는, 현재의 버퍼의 현재 위치로부터 시작됩니다. 현재의 버퍼의 컨텐츠로 변경을 더하면(자), 그 내용이 새로운 버퍼에 반영됩니다. 새로운 버퍼의 컨텐츠로 변경을 더하면(자), 그 내용이 현재의 버퍼에 반영됩니다. 2 개의 버퍼의 위치, 리밋트, 마크의 값은 각각 다릅니다.

새로운 버퍼의 위치는 0, 용량과 리밋트는 이 버퍼내에 남아 있는 바이트수의 것 1/2 이 됩니다. 마크는 정의되지 않습니다. 새로운 버퍼는, 현재의 버퍼가 다이렉트 버퍼인 경우에 한정해 다이렉트 버퍼가 됩니다. 또, 현재의 버퍼가 읽어내 전용 버퍼인 경우에 한정해 읽기 전용 버퍼가 됩니다.

반환값:
새로운 short 버퍼

getInt

public abstract int getInt()
int 치를 읽어내는 상대 「get」메소드입니다.

이 버퍼의 현재 위치로부터 4 바이트를 읽어들여, 현재의 바이트 순서에 따라, 이것들을 int 치로 변환합니다. 위치의 값은, 그때마다 4 두개증가합니다.

반환값:
버퍼의 현재 위치의 int 치
예외:
BufferUnderflowException - 이 버퍼내에 남아 있는 바이트수가 4 바이트보다 적은 경우

putInt

public abstract ByteBuffer  putInt(int value)
int 치를 기입하는 상대 「put」메소드입니다 (임의 조작).

이 버퍼의 현재 위치에, 현재의 바이트 순서에 따라, 지정된 int 치를 포함한 4 바이트를 기입합니다. 위치의 값은, 그때마다 4 두개증가합니다.

파라미터:
value - 기입해지는 int 치
반환값:
현재의 버퍼
예외:
BufferOverflowException - 이 버퍼내에 남아 있는 바이트수가 4 바이트보다 적은 경우
ReadOnlyBufferException - 현재의 버퍼가 읽어들여 전용 버퍼인 경우

getInt

public abstract int getInt(int index)
int 치를 읽어내는 절대 「get」메소드입니다.

지정된 인덱스 위치에 있는 4 바이트를 읽어들여, 현재의 바이트 순서에 따라, 이것들을 int 치로 변환합니다.

파라미터:
index - 바이트의 read 위치를 나타내는 인덱스
반환값:
지정된 인덱스 위치의 int 치
예외:
IndexOutOfBoundsException - index 가 0 보다 작은 값인 경우, 또는 버퍼의 리밋트 이상인 경우, -3

putInt

public abstract ByteBuffer  putInt(int index,
                                  int value)
int 치를 기입하는 절대 「put」메소드입니다 (임의 조작).

이 버퍼의 지정된 인덱스 위치에, 현재의 바이트 순서에 따라, 지정된 int 치를 포함한 4 바이트를 기입합니다.

파라미터:
index - 바이트의 기입처를 나타내는 인덱스
value - 기입해지는 int 치
반환값:
현재의 버퍼
예외:
IndexOutOfBoundsException - index 가 0 보다 작은 값인 경우, 또는 버퍼의 리밋트 이상인 경우, -3
ReadOnlyBufferException - 현재의 버퍼가 읽어들여 전용 버퍼인 경우

asIntBuffer

public abstract IntBuffer  asIntBuffer()
int 버퍼로서 이 byte 버퍼의 뷰를 작성합니다.

새로운 버퍼의 컨텐츠는, 현재의 버퍼의 현재 위치로부터 시작됩니다. 현재의 버퍼의 컨텐츠로 변경을 더하면(자), 그 내용이 새로운 버퍼에 반영됩니다. 새로운 버퍼의 컨텐츠로 변경을 더하면(자), 그 내용이 현재의 버퍼에 반영됩니다. 2 개의 버퍼의 위치, 리밋트, 마크의 값은 각각 다릅니다.

새로운 버퍼의 위치는 0, 용량과 리밋트는 이 버퍼내에 남아 있는 바이트수의 것 1/4 이 됩니다. 마크는 정의되지 않습니다. 새로운 버퍼는, 현재의 버퍼가 다이렉트 버퍼인 경우에 한정해 다이렉트 버퍼가 됩니다. 또, 현재의 버퍼가 읽어내 전용 버퍼인 경우에 한정해 읽기 전용 버퍼가 됩니다.

반환값:
새로운 int 버퍼

getLong

public abstract long getLong()
long 치를 읽어내는 상대 「get」메소드입니다.

이 버퍼의 현재 위치로부터 8 바이트를 읽어들여, 현재의 바이트 순서에 따라, 이것들을 long 치로 변환합니다. 위치의 값은, 그때마다 8 두개증가합니다.

반환값:
버퍼의 현재 위치의 long 치
예외:
BufferUnderflowException - 이 버퍼내에 남아 있는 바이트수가 8 바이트보다 적은 경우

putLong

public abstract ByteBuffer  putLong(long value)
long 치를 기입하는 상대 「put」메소드입니다 (임의 조작).

이 버퍼의 현재 위치에, 현재의 바이트 순서에 따라, 지정된 long 치를 포함한 8 바이트를 기입합니다. 위치의 값은, 그때마다 8 두개증가합니다.

파라미터:
value - 기입해지는 long 치
반환값:
현재의 버퍼
예외:
BufferOverflowException - 이 버퍼내에 남아 있는 바이트수가 8 바이트보다 적은 경우
ReadOnlyBufferException - 현재의 버퍼가 읽어들여 전용 버퍼인 경우

getLong

public abstract long getLong(int index)
long 치를 읽어내는 절대 「get」메소드입니다.

지정된 인덱스 위치에 있는 8 바이트를 읽어들여, 현재의 바이트 순서에 따라, 이것들을 long 치로 변환합니다.

파라미터:
index - 바이트의 read 위치를 나타내는 인덱스
반환값:
지정된 인덱스 위치의 long 치
예외:
IndexOutOfBoundsException - index 가 0 보다 작은 값인 경우, 또는 버퍼의 리밋트 이상인 경우, -7

putLong

public abstract ByteBuffer  putLong(int index,
                                   long value)
long 치를 기입하는 절대 「put」메소드입니다 (임의 조작).

이 버퍼의 지정된 인덱스 위치에, 현재의 바이트 순서에 따라, 지정된 long 치를 포함한 8 바이트를 기입합니다.

파라미터:
index - 바이트의 기입처를 나타내는 인덱스
value - 기입해지는 long 치
반환값:
현재의 버퍼
예외:
IndexOutOfBoundsException - index 가 0 보다 작은 값인 경우, 또는 버퍼의 리밋트 이상인 경우, -7
ReadOnlyBufferException - 현재의 버퍼가 읽어들여 전용 버퍼인 경우

asLongBuffer

public abstract LongBuffer  asLongBuffer()
long 버퍼로서 이 byte 버퍼의 뷰를 작성합니다.

새로운 버퍼의 컨텐츠는, 현재의 버퍼의 현재 위치로부터 시작됩니다. 현재의 버퍼의 컨텐츠로 변경을 더하면(자), 그 내용이 새로운 버퍼에 반영됩니다. 새로운 버퍼의 컨텐츠로 변경을 더하면(자), 그 내용이 현재의 버퍼에 반영됩니다. 2 개의 버퍼의 위치, 리밋트, 마크의 값은 각각 다릅니다.

새로운 버퍼의 위치는 0, 용량과 리밋트는 이 버퍼내에 남아 있는 바이트수의 것 1/8 이 됩니다. 마크는 정의되지 않습니다. 새로운 버퍼는, 현재의 버퍼가 다이렉트 버퍼인 경우에 한정해 다이렉트 버퍼가 됩니다. 또, 현재의 버퍼가 읽어내 전용 버퍼인 경우에 한정해 읽기 전용 버퍼가 됩니다.

반환값:
새로운 long 버퍼

getFloat

public abstract float getFloat()
float 치를 읽어내는 상대 「get」메소드입니다.

이 버퍼의 현재 위치로부터 4 바이트를 읽어들여, 현재의 바이트 순서에 따라, 이것들을 float 치로 변환합니다. 위치의 값은, 그때마다 4 두개증가합니다.

반환값:
버퍼의 현재 위치의 float 치
예외:
BufferUnderflowException - 이 버퍼내에 남아 있는 바이트수가 4 바이트보다 적은 경우

putFloat

public abstract ByteBuffer  putFloat(float value)
float 치를 기입하는 상대 「put」메소드입니다 (임의 조작).

이 버퍼의 현재 위치에, 현재의 바이트 순서에 따라, 지정된 float 치를 포함한 4 바이트를 기입합니다. 위치의 값은, 그때마다 4 두개증가합니다.

파라미터:
value - 기입해지는 float 치
반환값:
현재의 버퍼
예외:
BufferOverflowException - 이 버퍼내에 남아 있는 바이트수가 4 바이트보다 적은 경우
ReadOnlyBufferException - 현재의 버퍼가 읽어들여 전용 버퍼인 경우

getFloat

public abstract float getFloat(int index)
float 치를 읽어내는 절대 「get」메소드입니다.

지정된 인덱스 위치에 있는 4 바이트를 읽어들여, 현재의 바이트 순서에 따라, 이것들을 float 치로 변환합니다.

파라미터:
index - 바이트의 read 위치를 나타내는 인덱스
반환값:
지정된 인덱스 위치의 float 치
예외:
IndexOutOfBoundsException - index 가 0 보다 작은 값인 경우, 또는 버퍼의 리밋트 이상인 경우, -3

putFloat

public abstract ByteBuffer  putFloat(int index,
                                    float value)
float 치를 기입하는 절대 「put」메소드입니다 (임의 조작).

이 버퍼의 지정된 인덱스 위치에, 현재의 바이트 순서에 따라, 지정된 float 치를 포함한 4 바이트를 기입합니다.

파라미터:
index - 바이트의 기입처를 나타내는 인덱스
value - 기입해지는 float 치
반환값:
현재의 버퍼
예외:
IndexOutOfBoundsException - index 가 0 보다 작은 값인 경우, 또는 버퍼의 리밋트 이상인 경우, -3
ReadOnlyBufferException - 현재의 버퍼가 읽어들여 전용 버퍼인 경우

asFloatBuffer

public abstract FloatBuffer  asFloatBuffer()
float 버퍼로서 이 byte 버퍼의 뷰를 작성합니다.

새로운 버퍼의 컨텐츠는, 현재의 버퍼의 현재 위치로부터 시작됩니다. 현재의 버퍼의 컨텐츠로 변경을 더하면(자), 그 내용이 새로운 버퍼에 반영됩니다. 새로운 버퍼의 컨텐츠로 변경을 더하면(자), 그 내용이 현재의 버퍼에 반영됩니다. 2 개의 버퍼의 위치, 리밋트, 마크의 값은 각각 다릅니다.

새로운 버퍼의 위치는 0, 용량과 리밋트는 이 버퍼내에 남아 있는 바이트수의 것 1/4 이 됩니다. 마크는 정의되지 않습니다. 새로운 버퍼는, 현재의 버퍼가 다이렉트 버퍼인 경우에 한정해 다이렉트 버퍼가 됩니다. 또, 현재의 버퍼가 읽어내 전용 버퍼인 경우에 한정해 읽기 전용 버퍼가 됩니다.

반환값:
새로운 float 버퍼

getDouble

public abstract double getDouble()
double 치를 읽어내는 상대 「get」메소드입니다.

이 버퍼의 현재 위치로부터 8 바이트를 읽어들여, 현재의 바이트 순서에 따라, 이것들을 double 치로 변환합니다. 위치의 값은, 그때마다 8 두개증가합니다.

반환값:
버퍼의 현재 위치의 double 치
예외:
BufferUnderflowException - 이 버퍼내에 남아 있는 바이트수가 8 바이트보다 적은 경우

putDouble

public abstract ByteBuffer  putDouble(double value)
double 치를 기입하는 상대 「put」메소드입니다 (임의 조작).

이 버퍼의 현재 위치에, 현재의 바이트 순서에 따라, 지정된 double 치를 포함한 8 바이트를 기입합니다. 위치의 값은, 그때마다 8 두개증가합니다.

파라미터:
value - 기입해지는 double 치
반환값:
현재의 버퍼
예외:
BufferOverflowException - 이 버퍼내에 남아 있는 바이트수가 8 바이트보다 적은 경우
ReadOnlyBufferException - 현재의 버퍼가 읽어들여 전용 버퍼인 경우

getDouble

public abstract double getDouble(int index)
double 치를 읽어내는 절대 「get」메소드입니다.

지정된 인덱스 위치에 있는 8 바이트를 읽어들여, 현재의 바이트 순서에 따라, 이것들을 double 치로 변환합니다.

파라미터:
index - 바이트의 read 위치를 나타내는 인덱스
반환값:
지정된 인덱스 위치의 double 치
예외:
IndexOutOfBoundsException - index 가 0 보다 작은 값인 경우, 또는 버퍼의 리밋트 이상인 경우, -7

putDouble

public abstract ByteBuffer  putDouble(int index,
                                     double value)
double 치를 기입하는 절대 「put」메소드입니다 (임의 조작).

이 버퍼의 지정된 인덱스 위치에, 현재의 바이트 순서에 따라, 지정된 double 치를 포함한 8 바이트를 기입합니다.

파라미터:
index - 바이트의 기입처를 나타내는 인덱스
value - 기입해지는 double 치
반환값:
현재의 버퍼
예외:
IndexOutOfBoundsException - index 가 0 보다 작은 값인 경우, 또는 버퍼의 리밋트 이상인 경우, -7
ReadOnlyBufferException - 현재의 버퍼가 읽어들여 전용 버퍼인 경우

asDoubleBuffer

public abstract DoubleBuffer  asDoubleBuffer()
double 버퍼로서 이 byte 버퍼의 뷰를 작성합니다.

새로운 버퍼의 컨텐츠는, 현재의 버퍼의 현재 위치로부터 시작됩니다. 현재의 버퍼의 컨텐츠로 변경을 더하면(자), 그 내용이 새로운 버퍼에 반영됩니다. 새로운 버퍼의 컨텐츠로 변경을 더하면(자), 그 내용이 현재의 버퍼에 반영됩니다. 2 개의 버퍼의 위치, 리밋트, 마크의 값은 각각 다릅니다.

새로운 버퍼의 위치는 0, 용량과 리밋트는 이 버퍼내에 남아 있는 바이트수의 것 1/8 이 됩니다. 마크는 정의되지 않습니다. 새로운 버퍼는, 현재의 버퍼가 다이렉트 버퍼인 경우에 한정해 다이렉트 버퍼가 됩니다. 또, 현재의 버퍼가 읽어내 전용 버퍼인 경우에 한정해 읽기 전용 버퍼가 됩니다.

반환값:
새로운 double 버퍼

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.