JavaTM 2 Platform
Standard Ed. 5.0

java.nio
クラス CharBuffer

java.lang.Object
  上位を拡張 java.nio.Buffer
      上位を拡張 java.nio.CharBuffer
すべての実装されたインタフェース:
Appendable, CharSequence, Comparable<CharBuffer>, Readable

public abstract class CharBuffer
extends Buffer
implements Comparable<CharBuffer>, Appendable, CharSequence, Readable

char バッファです。

このクラスに定義されている char バッファに対する操作は、次の 4 つのカテゴリに分類できます。

char バッファを作成するには、バッファのコンテンツに容量を割り当てる割り当て操作を実行するか、 既存の char 配列または文字列をバッファ内にラップするか、または既存の byte バッファの「ビュー」を作成します。

byte バッファと同様に、char バッファにも「ダイレクト」バッファと「非ダイレクト」バッファがあります。このクラスの wrap メソッドで作成された char バッファは非ダイレクトバッファになります。byte バッファのビューとして作成された char バッファは、byte バッファがダイレクトバッファである場合に限りダイレクトバッファになります。char バッファがダイレクトバッファであるかどうかは、isDirect メソッドを呼び出すことで判断できます。

このクラスは CharSequence インタフェースを実装しています。このため、文字シーケンスが受け付けられる場所であればどこでも、char バッファを使用できます。たとえば、正規表現のパッケージ java.util.regex での使用が可能です。

このクラスのメソッドのうち戻り値を返さないものは、自身を呼び出したバッファの情報を返します。これを応用して、メソッド呼び出しを連鎖させることができます。 たとえば、次のような連続した文があるとしましょう。

 cb.put("text/");
 cb.put(subtype);
 cb.put(";
 charset=");
 cb.put(enc);
これらは、次の一文で置き換えられます。
 cb.put("text/").put(subtype).put(";
 charset=").put(enc);

導入されたバージョン:
1.4

メソッドの概要
static CharBuffer allocate(int capacity)
          新しい char バッファを割り当てます。
 CharBuffer append(char c)
          指定された文字をこのバッファに追加します (オプション)。
 CharBuffer append(CharSequence csq)
          指定された文字シーケンスをこのバッファに追加します (オプション)。
 CharBuffer append(CharSequence csq, int start, int end)
          指定された文字シーケンスのサブシーケンスをこのバッファに追加します (オプション)。
 char[] array()
          現在のバッファを補助する char 配列を返します (オプション)。
 int arrayOffset()
          現在のバッファの補助配列内にある、このバッファの最初の要素のオフセットを返します (オプション)。
abstract  CharBuffer asReadOnlyBuffer()
          現在のバッファのコンテンツを共有する新しい読み取り専用 char バッファを作成します。
 char charAt(int index)
          現在位置からの相対位置として指定されたインデックス位置にある文字を読み込みます。
abstract  CharBuffer compact()
          現在のバッファを圧縮します (オプション)。
 int compareTo(CharBuffer that)
          現在のバッファを別のバッファと比較します。
abstract  CharBuffer duplicate()
          現在のバッファのコンテンツを共有する新しい char バッファを作成します。
 boolean equals(Object ob)
          現在のバッファが別のオブジェクトと等価であるかどうかを判断します。
abstract  char get()
          相対「get」メソッドです。
 CharBuffer get(char[] dst)
          相対一括「get」メソッドです。
 CharBuffer get(char[] dst, int offset, int length)
          相対一括「get」メソッドです。
abstract  char get(int index)
          絶対「get」メソッドです。
 boolean hasArray()
          現在のバッファがアクセス可能な char 配列によって補助されているかどうかを判断します。
 int hashCode()
          現在のバッファの現在のハッシュコードを返します。
abstract  boolean isDirect()
          現在の char バッファがダイレクトバッファであるかどうかを判断します。
 int length()
          現在の char バッファのバッファ長を返します。
abstract  ByteOrder order()
          現在のバッファのバイト順序を取得します。
abstract  CharBuffer put(char c)
          相対「put」メソッドです (オプション)。
 CharBuffer put(char[] src)
          相対一括「put」メソッドです (オプション)。
 CharBuffer put(char[] src, int offset, int length)
          相対一括「put」メソッドです (オプション)。
 CharBuffer put(CharBuffer src)
          相対一括「put」メソッドです (オプション)。
abstract  CharBuffer put(int index, char c)
          絶対「put」メソッドです (オプション)。
 CharBuffer put(String src)
          相対一括「put」メソッドです (オプション)。
 CharBuffer put(String src, int start, int end)
          相対一括「put」メソッドです (オプション)。
 int read(CharBuffer target)
          指定された char バッファに文字列の読み込みを試みます。
abstract  CharBuffer slice()
          現在のバッファのコンテンツの共有のサブシーケンスをコンテンツとする新しい char バッファを作成します。
abstract  CharSequence subSequence(int start, int end)
          現在のバッファの指定されたサブシーケンス (現在位置からの相対位置) を表す新しい char バッファを作成します。
 String toString()
          現在のバッファ内に残っている文字を含む文字列を返します。
static CharBuffer wrap(char[] array)
          char 配列をバッファにラップします。
static CharBuffer wrap(char[] array, int offset, int length)
          char 配列をバッファにラップします。
static CharBuffer wrap(CharSequence csq)
          文字列をバッファにラップします。
static CharBuffer wrap(CharSequence csq, int start, int end)
          文字シーケンスをバッファにラップします。
 
クラス 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
 

メソッドの詳細

allocate

public static CharBuffer allocate(int capacity)
新しい char バッファを割り当てます。

新しいバッファの位置は 0、リミットは容量と同じ値になります。マークは定義されません。このバッファは補助配列を利用し、その配列オフセットは 0 になります。

パラメータ:
capacity - 新しいバッファの容量 (文字数)
戻り値:
新しい char バッファ
例外:
IllegalArgumentException - capacity が負の整数である場合

wrap

public static CharBuffer wrap(char[] array,
                              int offset,
                              int length)
char 配列をバッファにラップします。

新しいバッファは指定された char 配列によって補助されます。バッファに変更を加えると配列も変更され、配列に変更を加えるとバッファも変更されます。新しいバッファの容量は array.length、位置は offset、リミットは offset + length になります。マークは定義されません。指定された配列が補助配列となり、その配列オフセットは 0 になります。

パラメータ:
array - 新しいバッファを補助する配列
offset - 使用するサブ配列のオフセット。0 以上かつ array.length 以下の数でなければならない。新しいバッファの位置は、この値に設定される
length - 使用するサブ配列の長さ。0 以上かつ array.length - offset 以下の数でなければならない。新しいバッファのリミットは、offset + length に設定される
戻り値:
新しい char バッファ
例外:
IndexOutOfBoundsException - offset パラメータと length パラメータの前提条件が満たされていない場合

wrap

public static CharBuffer wrap(char[] array)
char 配列をバッファにラップします。

新しいバッファは指定された char 配列によって補助されます。バッファに変更を加えると配列も変更され、配列に変更を加えるとバッファも変更されます。新しいバッファの容量とリミットは array.length、位置は 0 になります。マークは定義されません。指定された配列が補助配列となり、その配列オフセットは 0 になります。

パラメータ:
array - 現在のバッファを補助する配列
戻り値:
新しい char バッファ

read

public int read(CharBuffer target)
         throws IOException
指定された char バッファに文字列の読み込みを試みます。バッファは、put 操作の結果により変更される以外は、文字列そのままのリポジトリとして使用されます。バッファのフリップ (反転) やリワインド (巻き戻し) は行われません。

定義:
インタフェース Readable 内の read
パラメータ:
target - 文字列の読み込み先のバッファ
戻り値:
この文字ソースの現在位置が末尾である場合は -1、そうでない場合はバッファに追加された文字の数
例外:
IOException - 入出力エラーが発生した場合
NullPointerException - target が null の場合
ReadOnlyBufferException - target が読み取り専用バッファの場合

wrap

public static CharBuffer wrap(CharSequence csq,
                              int start,
                              int end)
文字シーケンスをバッファにラップします。

新しい読み取り専用バッファのコンテンツは、指定された文字シーケンスのコンテンツになります。バッファの容量は csq.length()、位置は start、リミットは end になります。マークは定義されません。

パラメータ:
csq - 作成される新しい char バッファの元になる文字シーケンス
start - 使用される最初の文字を示すインデックス。0 以上かつ csq.length() 以下の数でなければならない。新しいバッファの位置は、この値に設定される
end - 使用される最後の文字の次の文字を示すインデックス。start 以上 csq.length() 以下の正の数でなければならない。新しいバッファのリミットは、この値に設定される
戻り値:
新しい char バッファ
例外:
IndexOutOfBoundsException - start パラメータと end パラメータの前提条件が満たされていない場合

wrap

public static CharBuffer wrap(CharSequence csq)
文字列をバッファにラップします。

新しい読み取り専用バッファのコンテンツは、指定された文字列のコンテンツになります。新しいバッファの容量とリミットは csq.length()、位置は 0 になります。マークは定義されません。

パラメータ:
csq - 作成される新しい char バッファの元になる文字シーケンス
戻り値:
新しい char バッファ

slice

public abstract CharBuffer slice()
現在のバッファのコンテンツの共有のサブシーケンスをコンテンツとする新しい char バッファを作成します。

新しいバッファのコンテンツは、現在のバッファの現在位置から始まります。現在のバッファのコンテンツに変更を加えると、その内容が新しいバッファに反映されます。新しいバッファのコンテンツに変更を加えると、その内容が現在のバッファに反映されます。2 つのバッファの位置、リミット、マークの値はそれぞれ異なります。

新しいバッファの位置は 0、容量とリミットはこのバッファ内に残っている文字数になります。マークは定義されません。新しいバッファは、このバッファがダイレクトバッファである場合に限りダイレクトバッファになります。また、このバッファが読み取り専用バッファである場合に限り読み取り専用バッファになります。

戻り値:
新しい char バッファ

duplicate

public abstract CharBuffer duplicate()
現在のバッファのコンテンツを共有する新しい char バッファを作成します。

新しいバッファのコンテンツは、現在のバッファのコンテンツと同じになります。現在のバッファのコンテンツに変更を加えると、その内容が新しいバッファに反映されます。新しいバッファのコンテンツに変更を加えると、その内容が現在のバッファに反映されます。2 つのバッファの位置、リミット、マークの値はそれぞれ異なります。

新しいバッファの容量、リミット、位置、マークの値は、現在のバッファの対応する値と同じになります。新しいバッファは、現在のバッファがダイレクトバッファである場合に限りダイレクトバッファになります。また、現在のバッファが読み取り専用バッファである場合に限り読み取り専用バッファになります。

戻り値:
新しい char バッファ

asReadOnlyBuffer

public abstract CharBuffer asReadOnlyBuffer()
現在のバッファのコンテンツを共有する新しい読み取り専用 char バッファを作成します。

新しいバッファのコンテンツは、現在のバッファのコンテンツと同じになります。現在のバッファのコンテンツに変更を加えると、その内容が新しいバッファに反映されます。しかし、新しいバッファ自体は読み取り専用であり、その共有コンテンツを変更することはできません。2 つのバッファの位置、リミット、マークの値はそれぞれ異なります。

新しいバッファの容量、リミット、位置、マークの値は、現在のバッファの対応する値と同じになります。

現在のバッファが読み取り専用の場合、このメソッドの動作は duplicate メソッドとまったく同じになります。

戻り値:
新しい読み取り専用 char バッファ

get

public abstract char get()
相対「get」メソッドです。バッファの現在位置の文字を読み込み、現在位置の値を増加します。

戻り値:
バッファの現在位置の文字
例外:
BufferUnderflowException - バッファの現在位置がリミット以上である場合

put

public abstract CharBuffer put(char c)
相対「put」メソッドです (オプション)。

バッファの現在位置に指定された文字を書き込み、現在位置の値を増加します。

パラメータ:
c - 書き込まれる文字
戻り値:
現在のバッファ
例外:
BufferOverflowException - 現在のバッファの現在位置がリミット以上である場合
ReadOnlyBufferException - 現在のバッファが読み取り専用バッファである場合

get

public abstract char get(int index)
絶対「get」メソッドです。指定されたインデックス位置の文字を読み込みます。

パラメータ:
index - 文字の読み込み位置を示すインデックス
戻り値:
指定されたインデックス位置の文字
例外:
IndexOutOfBoundsException - index が負の数である場合、またはバッファのリミット以上である場合

put

public abstract CharBuffer put(int index,
                               char c)
絶対「put」メソッドです (オプション)。

現在のバッファの指定されたインデックス位置に指定された文字を書き込みます。

パラメータ:
index - 文字の書き込み先を示すインデックス
c - 書き込まれる文字
戻り値:
現在のバッファ
例外:
IndexOutOfBoundsException - index が負の数である場合、またはバッファのリミット以上である場合
ReadOnlyBufferException - 現在のバッファが読み取り専用バッファである場合

get

public CharBuffer get(char[] dst,
                      int offset,
                      int length)
相対一括「get」メソッドです。

このメソッドは、このバッファから指定された配列に文字を転送します。このバッファ内に残っている文字数が要求に満たない場合 (つまり、length > remaining() である場合)、文字は一切転送されず、BufferUnderflowException がスローされます。

それ以外の場合、このメソッドは、現在のバッファの現在位置から length 文字を指定された配列の指定されたオフセット位置へコピーします。そのたびに、現在のバッファの位置が length ずつ増加します。

このメソッドを src.get(dst, off, len) の形式で呼び出すと、以下のループとまったく同じ結果になります。


     for (int i = off; i < off + len; i++)
         dst[i] = src.get(); 
ただし、現在のバッファ内に残っている文字数が十分であることを最初に確認する動作は、このメソッド固有です。また、このメソッドのほうがループよりも効率的です。

パラメータ:
dst - 文字の書き込み先となる配列
offset - 最初の文字の書き込み先となる配列内のオフセット。0 以上かつ dst.length 以下の数でなければならない
length - 指定された配列に書き込まれる最大文字数。0 以上かつ dst.length - offset 以下の数でなければならない
戻り値:
現在のバッファ
例外:
BufferUnderflowException - 現在のバッファ内に残っている文字数が length よりも少ない場合
IndexOutOfBoundsException - offset パラメータと length パラメータの前提条件が満たされていない場合

get

public CharBuffer get(char[] dst)
相対一括「get」メソッドです。

このメソッドは、現在のバッファから指定された配列へ文字を転送します。このメソッドを src.get(a) の形式で呼び出すと、以下の呼び出しと同じ結果になります。


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

戻り値:
現在のバッファ
例外:
BufferUnderflowException - 現在のバッファ内に残っている文字数が length よりも少ない場合

put

public CharBuffer put(CharBuffer src)
相対一括「put」メソッドです (オプション)。

このメソッドは、指定されたソースバッファ内に残っている文字 をこのバッファへ転送します。ソースバッファ内に残っている文字数がこのバッファ内に残っている文字数よりも多い場合 (つまり、src.remaining() > remaining() である場合)、文字は一切転送されず、BufferOverflowException がスローされます。

それ以外の場合、このメソッドは、指定されたバッファの現在位置から現在のバッファの現在位置へ n = src.remaining() 文字をコピーします。そのたびに、両方のバッファの位置が n ずつ増加します。

このメソッドを dst.put(src) の形式で呼び出すと、以下のループとまったく同じ結果になります。


     while (src.hasRemaining())
         dst.put(src.get()); 
ただし、現在のバッファ内に十分な容量があることを最初に確認する動作は、このメソッドに固有です。また、このメソッドのほうがループよりもずっと効率的です。

パラメータ:
src - 文字の読み込み先となるソースバッファ (現在のバッファ以外)
戻り値:
現在のバッファ
例外:
BufferOverflowException - 現在のバッファに、ソースバッファの文字を格納できるだけの容量がない場合
IllegalArgumentException - ソースバッファとして現在のバッファを指定した場合
ReadOnlyBufferException - 現在のバッファが読み取り専用バッファである場合

put

public CharBuffer put(char[] src,
                      int offset,
                      int length)
相対一括「put」メソッドです (オプション)。

このメソッドは、指定されたソース配列からこのバッファへ文字を転送します。配列からコピーする文字数がこのバッファ内に残っている文字数より多い場合 (つまり、length > remaining() である場合)、文字は一切転送されず、BufferOverflowException がスローされます。

それ以外の場合、このメソッドは、指定された配列の指定されたオフセット位置から現在のバッファの現在位置へ length 文字をコピーします。そのたびに、現在のバッファの位置が length ずつ増加します。

このメソッドを dst.put(src, off, len) の形式で呼び出すと、以下のループとまったく同じ結果になります。


     for (int i = off; i < off + len; i++)
         dst.put(a[i]); 
ただし、現在のバッファ内に十分な容量があることを最初に確認する動作は、このメソッドに固有です。また、このメソッドのほうがループよりもずっと効率的です。

パラメータ:
src - 文字の読み込み先となる配列
offset - 最初の文字の読み込み先となる配列内のオフセット。0 以上かつarray.length 以下の数でなければならない
length - 指定された配列から読み取られる文字の数。0 以上かつ array.length - offset 以下の数でなければならない
戻り値:
現在のバッファ
例外:
BufferOverflowException - 現在のバッファ内に残っている容量が不足している場合
IndexOutOfBoundsException - offset パラメータと length パラメータの前提条件が満たされていない場合
ReadOnlyBufferException - 現在のバッファが読み取り専用バッファである場合

put

public final CharBuffer put(char[] src)
相対一括「put」メソッドです (オプション)。

このメソッドは、ソースとなる指定された char 配列のコンテンツ全体を現在のバッファへ転送します。このメソッドを dst.put(a) の形式で呼び出すと、以下の呼び出しと同じ結果になります。


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

戻り値:
現在のバッファ
例外:
BufferOverflowException - 現在のバッファ内に残っている容量が不足している場合
ReadOnlyBufferException - 現在のバッファが読み取り専用バッファである場合

put

public CharBuffer put(String src,
                      int start,
                      int end)
相対一括「put」メソッドです (オプション)。

このメソッドは、指定された文字列から現在のバッファへ文字を転送します。文字列からコピーする文字数が現在のバッファ内に残っている文字数より多い場合 (end - start > remaining())、文字は一切転送されず、BufferOverflowException がスローされます。

それ以外の場合、このメソッドは、指定された文字列の start インデックスから現在のバッファの現在位置へ n = end - start 文字をコピーします。そのたびに、現在のバッファの位置が n ずつ増加します。

このメソッドを dst.put(src, start, end) の形式で呼び出すと、以下のループとまったく同じ結果になります。


     for (int i = start; i < end; i++)
         dst.put(src.charAt(i)); 
ただし、現在のバッファ内に十分な容量があることを最初に確認する動作は、このメソッドに固有です。また、このメソッドのほうがループよりもずっと効率的です。

パラメータ:
src - 文字の読み込み先となる文字列
start - 最初の文字の読み込み先となる文字列内のオフセット。0 以上かつ string.length 以下の数でなければならない
end - 最後の文字の読み込み先となる文字列内のオフセット + 1。0 以上かつ string.length() 以下の数でなければならない
戻り値:
現在のバッファ
例外:
BufferOverflowException - 現在のバッファ内に残っている容量が不足している場合
IndexOutOfBoundsException - start パラメータと end パラメータの前提条件が満たされていない場合
ReadOnlyBufferException - 現在のバッファが読み取り専用バッファである場合

put

public final CharBuffer put(String src)
相対一括「put」メソッドです (オプション)。

このメソッドは、指定されたソース文字列のコンテンツ全体を現在のバッファへ転送します。このメソッドを dst.put(s) の形式で呼び出すと、以下の呼び出しと同じ結果になります。


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

戻り値:
現在のバッファ
例外:
BufferOverflowException - 現在のバッファ内に残っている容量が不足している場合
ReadOnlyBufferException - 現在のバッファが読み取り専用バッファである場合

hasArray

public final boolean hasArray()
現在のバッファがアクセス可能な char 配列によって補助されているかどうかを判断します。

このメソッドの戻り値が true であれば、array メソッドおよび arrayOffset メソッドを安全に呼び出すことができます。

戻り値:
現在のバッファが配列によって補助されており、読み取り専用でない場合に限り true

array

public final char[] array()
現在のバッファを補助する char 配列を返します (オプション)。

現在のバッファのコンテンツに変更を加えると、返される配列のコンテンツも変更されます。その逆も同様です。

このメソッドを呼び出す前に hasArray メソッドを呼び出し、現在のバッファがアクセス可能な補助配列を持っていることを確認します。

戻り値:
現在のバッファを補助する配列
例外:
ReadOnlyBufferException - 現在のバッファが配列によって補助されており、しかも読み取り専用である場合
UnsupportedOperationException - 現在のバッファがアクセス可能な配列によって補助されていない場合

arrayOffset

public final int arrayOffset()
現在のバッファの補助配列内にある、このバッファの最初の要素のオフセットを返します (オプション)。

現在のバッファが配列によって補助されていれば、その位置 p が配列のインデックス p + arrayOffset() と一致します。

このメソッドを呼び出す前に hasArray メソッドを呼び出し、現在のバッファがアクセス可能な補助配列を持っていることを確認します。

戻り値:
現在のバッファの配列内にある、このバッファの最初の要素のオフセット
例外:
ReadOnlyBufferException - 現在のバッファが配列によって補助されており、しかも読み取り専用である場合
UnsupportedOperationException - 現在のバッファがアクセス可能な配列によって補助されていない場合

compact

public abstract CharBuffer compact()
現在のバッファを圧縮します (オプション)。

バッファの現在位置からリミットまでの間に文字が存在する場合、これらをバッファの先頭にコピーします。つまり、インデックス位置 p = position() の文字がインデックス 0 にコピーされ、インデックス位置 p + 1 の文字がインデックス 1 にコピーされるということです。インデックス位置 limit() - 1 の文字がインデックス n = limit() - 1 - p にコピーされるまで、同様の処理が繰り返されます。最終的にバッファの位置は n+1 に設定され、リミットは容量の値と等しくなります。マークは破棄されます。

バッファの位置は、0 ではなく、コピーされる文字数と等しくなります。したがって、このメソッドを呼び出したあと、すぐに別の相対「put」メソッドを呼び出すことができます。

戻り値:
現在のバッファ
例外:
ReadOnlyBufferException - 現在のバッファが読み取り専用バッファである場合

isDirect

public abstract boolean isDirect()
現在の char バッファがダイレクトバッファであるかどうかを判断します。

戻り値:
現在のバッファがダイレクトバッファである場合に限り true

hashCode

public int hashCode()
現在のバッファの現在のハッシュコードを返します。

char バッファのハッシュコードは、バッファ内に残っている要素、すなわち position()limit() - 1 の要素だけに依存します。

バッファのハッシュコードはコンテンツ依存型です。今後バッファのコンテンツが変更されないことが明らかでないかぎり、バッファをハッシュマップその他のデータ構造のキーとして使用することは避けてください。

オーバーライド:
クラス Object 内の hashCode
戻り値:
現在のバッファの現在のハッシュコード
関連項目:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object ob)
現在のバッファが別のオブジェクトと等価であるかどうかを判断します。

2 つの char バッファは、次の場合に限り等価です。

  1. 要素の型が同じである

  2. バッファ内に残っている要素数が同じである

  3. バッファ内に残っている要素のシーケンス (開始位置とは無関係) が各点で等しい (pointwise equal)

char バッファが、その他の型のオブジェクトと等価になることはありません。

オーバーライド:
クラス Object 内の equals
パラメータ:
ob - 現在のバッファと比較するオブジェクト
戻り値:
現在のバッファが指定されたオブジェクトと等価である場合に限り true
関連項目:
Object.hashCode(), Hashtable

compareTo

public int compareTo(CharBuffer that)
現在のバッファを別のバッファと比較します。

2 つの char バッファを比較する際は、残りの要素のシーケンスが辞書順に比較されます。このとき、双方のバッファ内に残っている各シーケンスの開始位置は考慮されません。

char バッファとその他の型のオブジェクトを比較することはできません。

定義:
インタフェース Comparable<CharBuffer> 内の compareTo
パラメータ:
that - 比較対象の Object
戻り値:
現在のバッファがもう一方のバッファより小さい場合は負の整数、等しい場合は 0、大きい場合は正の整数

toString

public String toString()
現在のバッファ内に残っている文字を含む文字列を返します。

返される文字列の最初の文字は、現在のバッファの現在位置にある文字になります。また、返される文字列の最後の文字は、インデックス位置 limit() - 1 にある文字列になります。このメソッドを呼び出しても、バッファの現在位置は変わりません。

定義:
インタフェース CharSequence 内の toString
オーバーライド:
クラス Object 内の toString
戻り値:
指定された文字列

length

public final int length()
現在の char バッファのバッファ長を返します。

文字シーケンスとして見た場合、char バッファのバッファ長 (文字数) は、位置の値以上、リミットの値より小さい値になります。この値は remaining() と等価です。

定義:
インタフェース CharSequence 内の length
戻り値:
現在の char バッファのバッファ長

charAt

public final char charAt(int index)
現在位置からの相対位置として指定されたインデックス位置にある文字を読み込みます。

定義:
インタフェース CharSequence 内の charAt
パラメータ:
index - 読み込む文字を示すインデックス (現在位置からの相対位置)。0 以上かつ remaining() 以下の数でなければならない
戻り値:
インデックス位置 position() + index にある文字
例外:
IndexOutOfBoundsException - index の前提条件が満たされていない場合

subSequence

public abstract CharSequence subSequence(int start,
                                         int end)
現在のバッファの指定されたサブシーケンス (現在位置からの相対位置) を表す新しい char バッファを作成します。

新しいバッファは、現在のバッファのコンテンツを共有します。つまり、現在のバッファのコンテンツが変更可能である場合、一方のバッファに変更を加えると他方のバッファも変更されます。新しいバッファの容量は現在のバッファの容量と同じになります。新しいバッファの位置は position() + start、リミットは position() + end になります。新しいバッファは、現在のバッファがダイレクトバッファである場合に限りダイレクトバッファになります。また、現在のバッファが読み取り専用である場合に限り読み取り専用バッファになります。

定義:
インタフェース CharSequence 内の subSequence
パラメータ:
start - サブシーケンス内の最初の文字を示すインデックス (現在位置からの相対位置)。0 以上かつ remaining() 以下の数でなければならない
end - サブシーケンス内の最後の文字を示すインデックス (現在位置からの相対位置)。start 以上 remaining() 以下の値でなければならない
戻り値:
新しい char バッファ
例外:
IndexOutOfBoundsException - start パラメータと end パラメータの前提条件が満たされていない場合

append

public CharBuffer append(CharSequence csq)
指定された文字シーケンスをこのバッファに追加します (オプション)。

このメソッドを dst.append(csq) の形式で呼び出した場合、次の呼び出しと同じ結果が得られます。


     dst.put(csq.toString()) 

文字シーケンス csqtoString の仕様によっては、そのシーケンス全体が追加されない可能性もあります。たとえば、char バッファの toString メソッドを呼び出した場合、そのバッファの位置とリミットによって決まる内容を持つサブシーケンスが返されます。

定義:
インタフェース Appendable 内の append
パラメータ:
csq - 追加される文字シーケンス。csqnull である場合、この char バッファに文字 null が 4 つ追加される
戻り値:
現在のバッファ
例外:
BufferOverflowException - 現在のバッファ内に残っている容量が不足している場合
ReadOnlyBufferException - 現在のバッファが読み取り専用バッファである場合
導入されたバージョン:
1.5

append

public CharBuffer append(CharSequence csq,
                         int start,
                         int end)
指定された文字シーケンスのサブシーケンスをこのバッファに追加します (オプション)。

csqnull でないときに、このメソッドを dst.append(csq, start, end) の形式で呼び出した場合、次の呼び出しと同じ結果が得られます。


     dst.put(csq.subSequence(start, end).toString()) 

定義:
インタフェース Appendable 内の append
パラメータ:
csq - 追加するサブシーケンスが格納された文字シーケンス。csqnull である場合、csq に文字 null が 4 つ格納されているものとして、文字が追加される
start - 文字サブシーケンスの最初の文字のインデックス
end - 文字サブシーケンスの最後の文字に続く文字のインデックス
戻り値:
現在のバッファ
例外:
BufferOverflowException - 現在のバッファ内に残っている容量が不足している場合
IndexOutOfBoundsException - start または end が負である場合、startend より大きい場合、あるいは endcsq.length() より大きい場合
ReadOnlyBufferException - 現在のバッファが読み取り専用バッファである場合
導入されたバージョン:
1.5

append

public CharBuffer append(char c)
指定された文字をこのバッファに追加します (オプション)。

このメソッドを dst.append(c) の形式で呼び出した場合、次の呼び出しと同じ結果が得られます。


     dst.put(c) 

定義:
インタフェース Appendable 内の append
パラメータ:
c - 追加する 16 ビット文字
戻り値:
現在のバッファ
例外:
BufferOverflowException - 現在のバッファ内に残っている容量が不足している場合
ReadOnlyBufferException - 現在のバッファが読み取り専用バッファである場合
導入されたバージョン:
1.5

order

public abstract ByteOrder order()
現在のバッファのバイト順序を取得します。

割り当てまたは既存の char 配列のラップによって作成された char バッファのバイト順序は、基本となるハードウェアのネイティブのバイト順序と同じになります。byte バッファのビューとして作成された char バッファのバイト順序は、ビューを作成した時点の byte バッファのバイト順序と同じになります。

戻り値:
現在のバッファのバイト順序

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。