- すべての実装されたインタフェース:
- Appendable,- CharSequence,- Comparable<CharBuffer>,- Readable
public abstract class CharBuffer extends Buffer implements Comparable<CharBuffer>, Appendable, CharSequence, Readable
このクラスは、charバッファに対する操作を4つのカテゴリに分類します。
- このバッファから配列に文字の連続シーケンスを転送する絶対および相対 - bulk getメソッド; および
- char配列、文字列、またはその他のcharバッファからこのバッファに連続した文字列のシーケンスを転送する絶対および相対 - bulk putメソッド; および
- charバッファの - compactingメソッドです。
 charバッファを作成するには、バッファの内容に容量を割り当てる割り当てを実行するか、既存のchar配列や文字列をバッファ内にラップするか、既存のbyteバッファのビューを作成します。
 
 byteバッファと同様に、charバッファにも「ダイレクト」と「非ダイレクト」があります。 このクラスのwrapメソッドで作成されたcharバッファは非ダイレクト・バッファになります。 byteバッファのビューとして作成されたcharバッファは、byteバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。 charバッファがダイレクト・バッファかどうかは、isDirectメソッドの呼出しによって判断できます。   
 このクラスはCharSequenceインタフェースを実装しているため、正規表現パッケージjava.util.regexなどの文字シーケンスが受け入れられる場所であればどこでも文字バッファを使用できます。 CharSequenceによって定義されたメソッドは、呼び出されたときに、バッファの現在の位置を基準として処理されます。 
 
このクラスのメソッドのうち戻り値を返さないものは、自身を呼び出したバッファの情報を返します。 これを応用して、メソッド呼出しを連鎖させることができます。 たとえば、次のような連続した文があるとしましょう。
 cb.put("text/");
 cb.put(subtype);
 cb.put("; charset=");
 cb.put(enc);
 cb.put("text/").put(subtype).put("; charset=").put(enc);- 導入されたバージョン:
- 1.4
- 
メソッドのサマリー修飾子と型 メソッド 説明 static CharBufferallocate(int capacity)新しいcharバッファを割り当てます。CharBufferappend(char c)指定されたcharをこのバッファに追加します (オプションの操作)。CharBufferappend(CharSequence csq)指定されたcharシーケンスをこのバッファに追加します (オプションの操作)。CharBufferappend(CharSequence csq, int start, int end)指定されたcharシーケンスのサブシーケンスをこのバッファに追加します (オプションの操作)。char[]array()このバッファを補助するchar配列を返します (オプションの操作)。intarrayOffset()このバッファの補助配列内にある、このバッファの最初の要素のオフセットを返します (オプションの操作)。abstract CharBufferasReadOnlyBuffer()このバッファの内容を共有する新しい読込み専用charバッファを作成します。charcharAt(int index)現在位置からの相対位置として指定されたインデックス位置にあるcharを読み込みます。CharBufferclear()このバッファをクリアします。abstract CharBuffercompact()このバッファを圧縮します (オプションの操作)。intcompareTo(CharBuffer that)このバッファを別のバッファと比較します。abstract CharBufferduplicate()このバッファの内容を共有する新しいcharバッファを作成します。booleanequals(Object ob)このバッファが別のオブジェクトと等価であるかどうかを判断します。CharBufferflip()このバッファをフリップ(反転)します。abstract charget()相対getメソッドです。CharBufferget(char[] dst)相対一括getメソッドです。CharBufferget(char[] dst, int offset, int length)相対一括getメソッドです。abstract charget(int index)絶対getメソッドです。CharBufferget(int index, char[] dst)絶対一括getメソッド。CharBufferget(int index, char[] dst, int offset, int length)絶対一括getメソッド。booleanhasArray()このバッファがアクセス可能なchar配列に連動するかどうかを判断します。inthashCode()このバッファの現在のハッシュ・コードを返します。abstract booleanisDirect()このcharバッファがダイレクト・バッファであるかどうかを判断します。intlength()このcharバッファのバッファ長を返します。CharBufferlimit(int newLimit)このバッファのリミットを設定します。CharBuffermark()このバッファの現在位置にマークを設定します。intmismatch(CharBuffer that)このバッファと指定されたバッファの最初の不一致の相対索引を検索して戻します。abstract ByteOrderorder()このバッファのbyte順序を取得します。CharBufferposition(int newPosition)このバッファの位置を設定します。abstract CharBufferput(char c)相対putメソッドです (オプションの操作)。CharBufferput(char[] src)相対一括putメソッドです (オプションの操作)。CharBufferput(char[] src, int offset, int length)相対一括putメソッドです (オプションの操作)。abstract CharBufferput(int index, char c)絶対putメソッドです (オプションの操作)。CharBufferput(int index, char[] src)(optional operation)の絶対一括putメソッド。CharBufferput(int index, char[] src, int offset, int length)(optional operation)の絶対一括putメソッド。CharBufferput(String src)相対一括putメソッドです (オプションの操作)。CharBufferput(String src, int start, int end)相対一括putメソッドです (オプションの操作)。CharBufferput(CharBuffer src)相対一括putメソッドです (オプションの操作)。intread(CharBuffer target)指定されたcharバッファにcharを読み込みます。CharBufferreset()バッファの位置を以前にマークした位置に戻します。CharBufferrewind()このバッファをリワインド(巻き戻し)します。abstract CharBufferslice()このバッファの内容の共有のサブシーケンスを内容とする新しいcharバッファを作成します。abstract CharBufferslice(int index, int length)このバッファの内容の共有のサブシーケンスを内容とする新しいcharバッファを作成します。abstract CharBuffersubSequence(int start, int end)このバッファの指定されたサブシーケンス(現在位置からの相対位置)を表す新しいcharバッファを作成します。StringtoString()このバッファ内に残っているcharを含む文字列を返します。static CharBufferwrap(char[] array)char配列をバッファにラップします。static CharBufferwrap(char[] array, int offset, int length)char配列をバッファにラップします。static CharBufferwrap(CharSequence csq)charシーケンスをバッファにラップします。static CharBufferwrap(CharSequence csq, int start, int end)charシーケンスをバッファにラップします。
- 
メソッドの詳細- 
allocatepublic static CharBuffer allocate(int capacity)新しいcharバッファを割り当てます。新しいバッファの位置は0になり、その限界はその容量になり、マークは未定義になり、各要素はゼロに初期化され、バイト・オーダーは基礎となるハードウェアの native orderになります。補助配列を持ち、配列オフセットはゼロになります。- パラメータ:
- capacity- 新しいバッファの容量(char)
- 戻り値:
- 新しいcharバッファ
- 例外:
- IllegalArgumentException-- capacityが負の整数である場合
 
- 
wrappublic static CharBuffer wrap(char[] array, int offset, int length)char配列をバッファにラップします。新しいバッファは指定されたchar配列によって補助されます。バッファに変更を加えると配列も変更され、配列に変更を加えるとバッファも変更されます。 新しいバッファの容量は array.lengthになり、その位置はoffsetになり、その制限はoffset + lengthになり、そのマークは未定義となり、そのバイト順序は基盤となるハードウェアのnative orderになります。 指定された配列が補助配列となり、その配列オフセットはゼロになります。- パラメータ:
- array- 新しいバッファを補助する配列
- offset-使用するサブ配列のオフセット。- array.length以下の負でない値でなければならない。 新しいバッファの位置は、この値に設定される。
- length- 使用するサブ配列の長さ。- array.length - offset以下の負でない値でなければならない。 新しいバッファのリミットは、- offset+lengthに設定される。
- 戻り値:
- 新しいcharバッファ
- 例外:
- IndexOutOfBoundsException-- offsetパラメータと- lengthパラメータの前提条件が満たされていない場合
 
- 
wrappublic static CharBuffer wrap(char[] array)char配列をバッファにラップします。新しいバッファは指定されたchar配列によって補助されます。バッファに変更を加えると配列も変更され、配列に変更を加えるとバッファも変更されます。 新しいバッファの容量と限界は array.lengthになり、その位置はゼロになり、マークは未定義になり、そのバイト・オーダーは基盤となるハードウェアのnative orderになります。 指定された配列が補助配列となり、その配列オフセットはゼロになります。- パラメータ:
- array- このバッファを補助する配列
- 戻り値:
- 新しいcharバッファ
 
- 
readpublic int read(CharBuffer target) throws IOException指定されたcharバッファにcharを読み込みます。 バッファは、put操作の結果により変更される以外は、文字列そのままのリポジトリとして使用されます。 バッファのフリッピング(反転)やリワインド(巻き戻し)は行われません。- 定義:
- read、インタフェース:- Readable
- パラメータ:
- target- charを読み込むバッファ
- 戻り値:
- バッファに追加されたcharの数。charのソースが最後の位置にある場合は -1
- 例外:
- IOException- 入出力エラーが発生した場合
- ReadOnlyBufferException- targetが読取り専用バッファの場合
- 導入されたバージョン:
- 1.5
 
- 
wrappublic static CharBuffer wrap(CharSequence csq, int start, int end)charシーケンスをバッファにラップします。新しい読取り専用バッファの内容は、指定されたcharシーケンスの内容になります。 新しいバッファの容量は csq.length()、位置はstart、リミットはendになり、マークは定義されません。- パラメータ:
- csq- 作成される新しいcharバッファの元になるcharシーケンス
- start- 使用される最初のcharを示すインデックス。- csq.length()以下の負でない値でなければならない。 新しいバッファの位置は、この値に設定される。
- end- 使用される最後のcharのあとに続くcharを示すインデックス。- start以上、- csq.length()以下の値でなければならない。 新しいバッファのリミットは、この値に設定される。
- 戻り値:
- 新しいcharバッファ
- 例外:
- IndexOutOfBoundsException-- startパラメータと- endパラメータの前提条件が満たされていない場合
 
- 
wrappublic static CharBuffer wrap(CharSequence csq)charシーケンスをバッファにラップします。新しい読取り専用バッファの内容は、指定されたcharシーケンスの内容になります。 新しいバッファの容量とリミットは csq.length()、位置はゼロになり、マークは定義されません。- パラメータ:
- csq- 作成される新しいcharバッファの元になるcharシーケンス
- 戻り値:
- 新しいcharバッファ
 
- 
slicepublic abstract CharBuffer slice()このバッファの内容の共有のサブシーケンスを内容とする新しいcharバッファを作成します。新しいバッファの内容は、このバッファの現在位置から始まります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。 新しいバッファの位置はゼロになり、その容量と限界はこのバッファに残っている文字の数になり、そのマークは未定義となり、そのバイト順序はこのバッファの順序と同じになります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。 
- 
slicepublic abstract CharBuffer slice(int index, int length)このバッファの内容の共有のサブシーケンスを内容とする新しいcharバッファを作成します。新しいバッファの内容は、このバッファ内の indexの位置から始まり、length要素が含まれます。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。新しいバッファ位置はゼロ、容量とリミットは length、マークは未定義、バイト順序はこのバッファのものと同一です。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。- 定義:
- クラスBufferのslice
- パラメータ:
- index- 新しいバッファの内容が開始される、このバッファ内の位置。- limit()以外の値である必要があります。
- length- 新規バッファに含まれる要素の数。負以外で- limit() - indexより大きい値である必要があります。
- 戻り値:
- 新しいバッファ
- 例外:
- IndexOutOfBoundsException-- indexが、- limit()以上の場合、- lengthがマイナスまたは- length > limit() - index
- 導入されたバージョン:
- 13
 
- 
duplicatepublic abstract CharBuffer duplicate()このバッファの内容を共有する新しいcharバッファを作成します。新しいバッファの内容は、このバッファの内容と同じになります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。 新しいバッファ容量、限界、位置、マーク値、およびバイト順は、このバッファのものと同じになります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。 
- 
asReadOnlyBufferpublic abstract CharBuffer asReadOnlyBuffer()このバッファの内容を共有する新しい読込み専用charバッファを作成します。新しいバッファの内容は、このバッファの内容と同じになります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。しかし、新しいバッファ自体は読取り専用であり、その共有内容を変更することはできません。 2つのバッファの位置、リミット、マークの値はそれぞれ異なります。 新しいバッファ容量、限界、位置、マーク値、およびバイト順は、このバッファのものと同じになります。 このバッファ自身が読込み専用の場合は、このメソッドは duplicateと同じように動作します。- 戻り値:
- 新しい読込み専用charバッファ
 
- 
getpublic abstract char get()相対getメソッドです。 バッファの現在位置のcharを読み込み、現在位置の値を増加します。- 戻り値:
- バッファの現在位置のchar
- 例外:
- BufferUnderflowException- バッファの現在位置がリミット以上である場合
 
- 
putpublic abstract CharBuffer put(char c)相対putメソッドです (オプションの操作)。バッファの現在位置に指定されたcharを書き込み、現在位置の値を増加します。 - パラメータ:
- c- 書き込まれるchar
- 戻り値:
- このバッファ
- 例外:
- BufferOverflowException- このバッファの現在位置がリミット以上である場合
- ReadOnlyBufferException- このバッファが読込み専用である場合
 
- 
getpublic abstract char get(int index)絶対getメソッドです。 指定されたインデックス位置のcharを読み込みます。- パラメータ:
- index- charの読込み位置を示すインデックス
- 戻り値:
- 指定されたインデックス位置のchar
- 例外:
- IndexOutOfBoundsException-- indexが負の数である場合、またはバッファのリミット以上である場合
 
- 
putpublic abstract CharBuffer put(int index, char c)絶対putメソッドです (オプションの操作)。このバッファの指定されたインデックス位置に指定されたcharを書き込みます。 - パラメータ:
- index- charの書込み先を示すインデックス
- c- 書き込まれるchar値
- 戻り値:
- このバッファ
- 例外:
- IndexOutOfBoundsException-- indexが負の数である場合、またはバッファのリミット以上である場合
- ReadOnlyBufferException- このバッファが読込み専用である場合
 
- 
getpublic CharBuffer get(char[] dst, int offset, int length)相対一括getメソッドです。このメソッドは、このバッファから指定された配列へcharを転送します。 このバッファ内に残っているchar数が要求に満たない場合(つまり、 length>remaining()である場合)、charは一切転送されず、BufferUnderflowExceptionがスローされます。それ以外の場合、このメソッドは、 length個のcharを、このバッファの現在位置から指定された配列の指定されたオフセット位置へコピーします。 そのたびに、このバッファの位置がlengthずつ増加します。このメソッドを src.get(dst, off, len)の形式で呼び出すと、次のループとまったく同じ結果になります。
 ただし、このバッファ内に十分な数のchar数があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。for (int i = off; i < off + len; i++) dst[i] = src.get();- パラメータ:
- dst- charの書込み先となる配列
- offset- 最初のcharの書込み先となる配列内のオフセット。- dst.length以下の負でない値でなければならない
- length- 指定された配列に書き込まれる最大char数。- dst.length - offset以下の負でない値でなければならない
- 戻り値:
- このバッファ
- 例外:
- BufferUnderflowException- このバッファ内に残っているchar数が- lengthよりも少ない場合
- IndexOutOfBoundsException-- offsetパラメータと- lengthパラメータの前提条件が満たされていない場合
 
- 
getpublic CharBuffer get(char[] dst)相対一括getメソッドです。このメソッドは、このバッファから指定された配列へcharを転送します。 このメソッドを src.get(a)の形式で呼び出すと、次の呼び出しと同じ結果になります。src.get(a, 0, a.length)- パラメータ:
- dst- コピー先配列
- 戻り値:
- このバッファ
- 例外:
- BufferUnderflowException- このバッファ内に残っているchar数が- lengthよりも少ない場合
 
- 
getpublic CharBuffer get(int index, char[] dst, int offset, int length)絶対一括getメソッド。このメソッドは、このバッファ内の指定されたインデックスから、配列内の指定されたオフセットから開始して、 length文字をこのバッファから指定された配列に転送します。 このバッファの位置は変わりません。フォーム src.get(index, dst, offset, length)のこのメソッドを起動しても、次のループとまったく同じ効果があります。ただし、最初に提供されたパラメータの一貫性がチェックされ、それがさらに効率的である可能性があります:for (int i = offset, j = index; i < offset + length; i++, j++) dst[i] = src.get(j);- パラメータ:
- index- 最初の文字の読取り元であるこのバッファ内のインデックス。負でない、および- limit()より小さい必要があります。
- dst- コピー先配列
- offset- 書き込まれる最初の文字の配列内のオフセット。- dst.lengthより小さくしないでください。
- length- 指定された配列に書き込まれる文字の数。負でない値にする必要があります。また、- limit() - indexおよび- dst.length - offsetの値より小さくしないでください。
- 戻り値:
- このバッファ
- 例外:
- IndexOutOfBoundsException-- index、- offsetおよび- lengthパラメータの事前条件が満たされていない場合、それらを保持しません
- 導入されたバージョン:
- 13
 
- 
getpublic CharBuffer get(int index, char[] dst)絶対一括getメソッド。このメソッドは、このバッファから指定された配列へcharを転送します。 このバッファの位置は変わりません。 フォーム src.get(index, dst)のこのメソッドの起動は、起動とまったく同じ方法で動作します:src.get(index, dst, 0, dst.length)- パラメータ:
- index- 最初の文字の読取り元であるこのバッファ内のインデックス。負でない、および- limit()より小さい必要があります。
- dst- コピー先配列
- 戻り値:
- このバッファ
- 例外:
- IndexOutOfBoundsException-- indexが負であるか、- limit()より小さくないか、または- limit() - index < dst.lengthの場合
- 導入されたバージョン:
- 13
 
- 
putpublic CharBuffer put(CharBuffer src)相対一括putメソッドです (オプションの操作)。このメソッドは、指定されたソース・バッファ内に残っているcharをこのバッファへ転送します。 ソース・バッファ内に残っているchar数がこのバッファ内に残っているchar数よりも多い場合(つまり、 src.remaining()>remaining()である場合)、charは一切転送されず、BufferOverflowExceptionがスローされます。それ以外の場合、このメソッドは、指定されたバッファの現在位置からこのバッファの現在位置へn = src.remaining()charをコピーします。 そのたびに、両方のバッファの位置がnずつ増加します。このメソッドを dst.put(src)の形式で呼び出すと、次のループとまったく同じ結果になります。while (src.hasRemaining()) dst.put(src.get());ただし、このバッファ内に十分な容量があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。- パラメータ:
- src- charの読込み先となるソース・バッファ(このバッファ以外)
- 戻り値:
- このバッファ
- 例外:
- BufferOverflowException- このバッファに、ソース・バッファ内に残っているcharを格納できるだけの容量がない場合
- IllegalArgumentException- ソース・バッファとしてこのバッファを指定した場合
- ReadOnlyBufferException- このバッファが読込み専用である場合
 
- 
putpublic CharBuffer put(char[] src, int offset, int length)相対一括putメソッドです (オプションの操作)。このメソッドは、指定されたソース配列からこのバッファへcharを転送します。 配列からコピーするchar数がこのバッファ内に残っているchar数より多い場合(つまり、 length>remaining()である場合)、charは一切転送されず、BufferOverflowExceptionがスローされます。それ以外の場合、このメソッドは、指定された配列の指定されたオフセット位置からこのバッファの現在位置へ length個のcharをコピーします。 そのたびに、このバッファの位置がlengthずつ増加します。このメソッドを dst.put(src, off, len)の形式で呼び出すと、次のループとまったく同じ結果になります。
 ただし、このバッファ内に十分な容量があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。for (int i = off; i < off + len; i++) dst.put(src[i]);- パラメータ:
- src- charの読込み先となる配列
- offset- 最初に読み込む文字の配列内のオフセット。負でない値で、- src.lengthより小さくない値である必要があります。
- length- 指定された配列から読み込まれる文字数。負以外の値で- src.length - offsetより小さくする必要があります。
- 戻り値:
- このバッファ
- 例外:
- BufferOverflowException- このバッファ内に残っている容量が不足している場合
- IndexOutOfBoundsException-- offsetパラメータと- lengthパラメータの前提条件が満たされていない場合
- ReadOnlyBufferException- このバッファが読込み専用である場合
 
- 
putpublic final CharBuffer put(char[] src)相対一括putメソッドです (オプションの操作)。このメソッドは、ソースとなる指定されたchar配列の内容全体をこのバッファへ転送します。 このメソッドを dst.put(a)の形式で呼び出すと、次の呼び出しと同じ結果になります。dst.put(a, 0, a.length)- パラメータ:
- src- 転送元配列
- 戻り値:
- このバッファ
- 例外:
- BufferOverflowException- このバッファ内に残っている容量が不足している場合
- ReadOnlyBufferException- このバッファが読込み専用である場合
 
- 
putpublic CharBuffer put(int index, char[] src, int offset, int length)(optional operation)の絶対一括putメソッド。このメソッドは、指定された配列から length文字を転送します。配列内の指定されたオフセットから開始し、このバッファ内の指定されたインデックスから開始します。 このバッファの位置は変わりません。フォーム dst.put(index, src, offset, length)のこのメソッドを起動しても、次のループとまったく同じ効果があります。ただし、最初に提供されたパラメータの一貫性がチェックされ、それがさらに効率的である可能性があります:for (int i = offset, j = index; i < offset + length; i++, j++) dst.put(j, src[i]);- パラメータ:
- index- 最初の文字が書き込まれるこのバッファ内のインデックス。- limit()以上でない必要があります。
- src- charの読込み先となる配列
- offset- 読み込む最初の文字の配列内のオフセット。- src.length以上でないか、または- src.lengthより小さい必要があります。
- length- 指定された配列から読み取られる文字の数。負でない値で、- limit() - indexおよび- src.length - offsetの値以上の値である必要があります。
- 戻り値:
- このバッファ
- 例外:
- IndexOutOfBoundsException-- index、- offsetおよび- lengthパラメータの事前条件が満たされていない場合、それらを保持しません
- ReadOnlyBufferException- このバッファが読込み専用である場合
- 導入されたバージョン:
- 13
 
- 
putpublic CharBuffer put(int index, char[] src)(optional operation)の絶対一括putメソッド。このメソッドは、指定されたソース配列からこのバッファに文字をコピーします。 このバッファの位置は変わりません。 フォーム dst.put(index, src)のこのメソッドの起動は、起動とまったく同じ方法で動作します:dst.put(index, src, 0, src.length);- パラメータ:
- index- 最初の文字が書き込まれるこのバッファ内のインデックス。- limit()以上でない必要があります。
- src- charの読込み先となる配列
- 戻り値:
- このバッファ
- 例外:
- IndexOutOfBoundsException-- indexが負であるか、- limit()より小さくないか、または- limit() - index < src.lengthの場合
- ReadOnlyBufferException- このバッファが読込み専用である場合
- 導入されたバージョン:
- 13
 
- 
putpublic CharBuffer put(String src, int start, int end)相対一括putメソッドです (オプションの操作)。このメソッドは、指定された文字列からこのバッファへcharを転送します。 文字列からコピーするchar数がこのバッファ内に残っているchar数より多い場合(つまり、 end - start>remaining()である場合)、charは一切転送されず、BufferOverflowExceptionがスローされます。それ以外の場合、このメソッドは、指定された文字列の startインデックスからこのバッファの現在位置へn =end-startcharをコピーします。 そのたびに、このバッファの位置がnずつ増加します。このメソッドを dst.put(src, start, end)の形式で呼び出すと、次のループとまったく同じ結果になります。
 ただし、このバッファ内に十分な容量があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。for (int i = start; i < end; i++) dst.put(src.charAt(i));- パラメータ:
- src- 文字列の読込み先となる配列
- start- 最初のcharの読込み先となる文字列内のオフセット。- string.length()以下の負でない値にする必要がある
- end- 最後のcharの読込み先となる文字列内のオフセット。- string.length()以下の負でない値にする必要がある
- 戻り値:
- このバッファ
- 例外:
- BufferOverflowException- このバッファ内に残っている容量が不足している場合
- IndexOutOfBoundsException-- startパラメータと- endパラメータの前提条件が満たされていない場合
- ReadOnlyBufferException- このバッファが読込み専用である場合
 
- 
putpublic final CharBuffer put(String src)相対一括putメソッドです (オプションの操作)。このメソッドは、指定されたソース文字列の内容全体をこのバッファへ転送します。 このメソッドを dst.put(s)の形式で呼び出すと、次の呼び出しと同じ結果になります。dst.put(s, 0, s.length())- パラメータ:
- src- ソース文字列
- 戻り値:
- このバッファ
- 例外:
- BufferOverflowException- このバッファ内に残っている容量が不足している場合
- ReadOnlyBufferException- このバッファが読込み専用である場合
 
- 
hasArraypublic final boolean hasArray()このバッファがアクセス可能なchar配列に連動するかどうかを判断します。このメソッドの戻り値が trueであれば、arrayおよびarrayOffsetメソッドを安全に呼び出すことができます。
- 
arraypublic final char[] array()このバッファを補助するchar配列を返します (オプションの操作)。このバッファの内容に変更を加えると、返される配列の内容も変更されます。その逆も同様です。 このメソッドを呼び出す前に hasArrayメソッドを呼び出し、このバッファがアクセス可能な補助配列を持っていることを確認します。- 定義:
- array、クラス:- Buffer
- 戻り値:
- このバッファを補助する配列
- 例外:
- ReadOnlyBufferException- このバッファが配列に連動しており、しかも読込み専用である場合
- UnsupportedOperationException- このバッファがアクセス可能な配列を利用しない場合
 
- 
arrayOffsetpublic final int arrayOffset()このバッファの補助配列内にある、このバッファの最初の要素のオフセットを返します (オプションの操作)。このバッファが配列に連動していれば、その位置pが配列のインデックスp + arrayOffset()と一致します。このメソッドを呼び出す前に hasArrayメソッドを呼び出し、このバッファがアクセス可能な補助配列を持っていることを確認します。- 定義:
- arrayOffset、クラス:- Buffer
- 戻り値:
- このバッファの配列内にある、このバッファの最初の要素のオフセット
- 例外:
- ReadOnlyBufferException- このバッファが配列に連動しており、しかも読込み専用である場合
- UnsupportedOperationException- このバッファがアクセス可能な配列を利用しない場合
 
- 
positionpublic final CharBuffer position(int newPosition)このバッファの位置を設定します。 新しい位置の値よりもマークの値のほうが大きい場合、マークの定義は破棄されます。
- 
limitpublic final CharBuffer limit(int newLimit)このバッファのリミットを設定します。 位置の値が新しいリミットより大きい場合、リミットと同じ値に変更されます。 マークの値が新しいリミットより大きい場合、マークの定義は破棄されます。
- 
markpublic final CharBuffer mark()このバッファの現在位置にマークを設定します。
- 
resetpublic final CharBuffer reset()バッファの位置を以前にマークした位置に戻します。このメソッドを呼び出しても、マークの値は変更されません。マークが破棄されることもありません。 
- 
clearpublic final CharBuffer clear()このバッファをクリアします。 バッファの位置はゼロ、リミットは容量の値に設定されます。マークは破棄されます。一連のチャネル読込み操作または「put」操作を使用してこのバッファにデータを格納する前に、このメソッドを呼び出します。 次に例を示します。 buf.clear(); // Prepare buffer for reading in.read(buf); // Read data このメソッドはバッファ内のデータを実際に消去するわけではありません。しかし、そうした状況で使用されるため、クリアと命名されています。 
- 
flippublic final CharBuffer flip()このバッファをフリップ(反転)します。 リミットは現在位置の値に設定され、現在位置を表す値はゼロに設定されます。 マークが定義されている場合、そのマークは破棄されます。一連のチャネル読込み操作(put)のあと、このメソッドを呼び出してチャネル書込み操作(相対「get」)の準備を行います。 次に例を示します。 buf.put(magic); // Prepend header in.read(buf); // Read data into rest of buffer buf.flip(); // Flip buffer out.write(buf); // Write header + data to channel ある場所から別の場所にデータを転送する際、このメソッドを compactメソッドと組み合わせて使用することがあります。
- 
rewindpublic final CharBuffer rewind()このバッファをリワインド(巻き戻し)します。 位置はゼロに設定され、マークは破棄されます。このメソッドは、リミットを正しく設定したあと、一連のチャネル書込み操作(get)の前に呼び出します。 次に例を示します。 out.write(buf); // Write remaining data buf.rewind(); // Rewind buffer buf.get(array); // Copy data into array 
- 
compactpublic abstract CharBuffer compact()このバッファを圧縮します (オプションの操作)。バッファの現在位置からリミットまでの間にcharが存在する場合、これらをバッファの先頭にコピーします。 つまり、インデックス位置p = position()のcharがインデックス・ゼロにコピーされ、インデックス位置p + 1のcharがインデックス1にコピーされるということです。インデックス位置limit()- 1のcharがインデックスn =limit()-1- pにコピーされるまで、同様の処理が繰り返されます。 最終的にバッファの位置はn+1に設定され、リミットは容量の値と等しくなります。 マークは破棄されます。バッファの位置は、ゼロではなく、コピーされるchar数と等しくなります。したがって、このメソッドを呼び出したあと、すぐに別の相対「put」メソッドを呼び出すことができます。 - 戻り値:
- このバッファ
- 例外:
- ReadOnlyBufferException- このバッファが読込み専用である場合
 
- 
isDirectpublic abstract boolean isDirect()このcharバッファがダイレクト・バッファであるかどうかを判断します。
- 
hashCodepublic int hashCode()このバッファの現在のハッシュ・コードを返します。charバッファのハッシュ・コードは、バッファ内に残っている要素、すなわち position()からlimit()-1までの要素のみに依存します。バッファのハッシュ・コードは内容依存型です。今後バッファの内容が変更されないことが明らかでないかぎり、バッファをハッシュ・マップその他のデータ構造のキーとして使用することは避けてください。 - オーバーライド:
- hashCode、クラス:- Object
- 戻り値:
- このバッファの現在のハッシュ・コード
- 関連項目:
- Object.equals(java.lang.Object),- System.identityHashCode(java.lang.Object)
 
- 
equalspublic boolean equals(Object ob)このバッファが別のオブジェクトと等価であるかどうかを判断します。2つのcharバッファは、次の場合にかぎり等価です。 - 要素の型が同じである 
- バッファ内に残っている要素数が同じである 
- バッファ内に残っている要素のシーケンス(開始位置とは無関係)が各点で等しい(pointwise equal) 
 charバッファが、その他の型のオブジェクトと等価になることはありません。 - オーバーライド:
- equals、クラス:- Object
- パラメータ:
- ob- このバッファと比較するオブジェクト
- 戻り値:
- このバッファが指定されたオブジェクトと等価である場合にかぎりtrue
- 関連項目:
- Object.hashCode()、- HashMap
 
- 
compareTopublic int compareTo(CharBuffer that)このバッファを別のバッファと比較します。2つのcharバッファを比較する際は、バッファ内に残っている要素のシーケンスが辞書順に比較されます。このとき、双方のバッファ内に残っているシーケンスの開始位置は考慮されません。 Character.compare(char,char)を呼び出したかのように、char要素のペアが比較されます。charバッファとその他の型のオブジェクトを比較することはできません。 - 定義:
- compareTo、インタフェース:- Comparable<CharBuffer>
- パラメータ:
- that- 比較対象のオブジェクト。
- 戻り値:
- このバッファが指定されたバッファより小さい場合は負の整数、等しい場合はゼロ、大きい場合は正の整数
 
- 
mismatchpublic int mismatch(CharBuffer that)このバッファと指定されたバッファの最初の不一致の相対索引を検索して戻します。 インデックスは各バッファのpositionに相対的であり、各バッファ(inclusive)の範囲が各バッファremainingの範囲内で小さくなる。2つのバッファが共通プレフィクスを共有している場合、戻される索引は共通プレフィクスの長さとなり、各バッファ内のその索引の2つのバッファ間に不一致があることに従います。 一方のバッファがもう一方のバッファのプレフィクスである場合、戻された索引は各バッファ内の残りの要素の小さい方になり、残りの要素の数が多いバッファに対してのみ索引が有効になります。 それ以外の場合は、不一致はありません。 - パラメータ:
- that- このバッファと不一致をテストするためのバイト・バッファ
- 戻り値:
- このバッファと指定されたバッファの最初の不一致の相対索引です。一致しない場合は -1です。
- 導入されたバージョン:
- 11
 
- 
toStringpublic String toString()このバッファ内に残っているcharを含む文字列を返します。また、結果として得られる文字列の最初のcharはこのバッファの位置にあるcharであるのに対して、最後のcharはインデックス位置 limit()- 1にあるcharになります。 このメソッドを呼び出しても、バッファの位置は変わりません。- 定義:
- toString、インタフェース:- CharSequence
- オーバーライド:
- toString、クラス:- Object
- 戻り値:
- 指定された文字列
 
- 
lengthpublic final int length()このcharバッファのバッファ長を返します。charシーケンスとして見た場合、charバッファのバッファ長(char数)は、位置の値以上、リミットの値より小さい値になります。この値は remaining()と等価です。- 定義:
- length、インタフェース:- CharSequence
- 戻り値:
- このcharバッファのバッファ長
 
- 
charAtpublic final char charAt(int index)現在位置からの相対位置として指定されたインデックス位置にあるcharを読み込みます。- 定義:
- charAt、インタフェース:- CharSequence
- パラメータ:
- index- 読み取られるcharのインデックス(現在位置からの相対位置)。この値は- remaining()以下の負でない値でなければならない
- 戻り値:
- インデックス位置position() + indexにあるchar
- 例外:
- IndexOutOfBoundsException-- indexの前提条件が満たされていない場合
 
- 
subSequencepublic abstract CharBuffer subSequence(int start, int end)このバッファの指定されたサブシーケンス(現在位置からの相対位置)を表す新しいcharバッファを作成します。新しいバッファは、このバッファの内容を共有します。つまり、このバッファの内容が変更可能である場合、一方のバッファに変更を加えると他方のバッファも変更されます。新しいバッファの容量はこのバッファの容量と同じになります。 新しいバッファの容量はこのバッファの容量になり、その位置は position()+start、リミットはposition()+endになります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。- 定義:
- subSequence、インタフェース:- CharSequence
- パラメータ:
- start- サブシーケンス内の最初のcharを示すインデックス(現在位置からの相対位置)。- remaining()以下の負でない値でなければならない
- end- サブシーケンス内の最後のcharのあとに続くcharを示すインデックス(現在位置からの相対位置)。- start以上- remaining()以下の値でなければならない
- 戻り値:
- 新しいcharバッファ
- 例外:
- IndexOutOfBoundsException-- startと- endの前提条件が満たされていない場合
 
- 
appendpublic CharBuffer append(CharSequence csq)指定されたcharシーケンスをこのバッファに追加します (オプションの操作)。このメソッドを dst.append(csq)の形式で呼び出した場合、次の呼び出しとまったく同様に動作します。dst.put(csq.toString())charシーケンス csqに対するtoStringの指定に応じて、シーケンス全体が追加されないこともあります。 たとえば、charバッファのtoStringメソッドを呼び出した場合、そのバッファの位置とリミットによって決まる内容を持つサブシーケンスが返されます。- 定義:
- append、インタフェース:- Appendable
- パラメータ:
- csq- 追加するcharシーケンス。- csqが- nullの場合は、このcharバッファに- 「null」という4 charが追加される。
- 戻り値:
- このバッファ
- 例外:
- BufferOverflowException- このバッファ内に残っている容量が不足している場合
- ReadOnlyBufferException- このバッファが読込み専用である場合
- 導入されたバージョン:
- 1.5
 
- 
appendpublic CharBuffer append(CharSequence csq, int start, int end)指定されたcharシーケンスのサブシーケンスをこのバッファに追加します (オプションの操作)。csqがnullでないときに、このメソッドをdst.append(csq, start, end)の形式で呼び出した場合、次の呼び出しとまったく同様に動作します。dst.put(csq.subSequence(start, end).toString())- 定義:
- append、インタフェース:- Appendable
- パラメータ:
- csq- サブシーケンスの追加元のcharシーケンス。- csqが- nullの場合は、- csqに- 「null」という4 charが含まれているかのようにcharが追加される
- start- サブシーケンスの最初のcharのインデックス
- end- サブシーケンスの最後のcharのあとに続くcharのインデックス
- 戻り値:
- このバッファ
- 例外:
- BufferOverflowException- このバッファ内に残っている容量が不足している場合
- IndexOutOfBoundsException-- startまたは- endが負の値の場合、- startが- endよりも大きい場合、あるいは- endが- csq.length()よりも大きい場合
- ReadOnlyBufferException- このバッファが読込み専用である場合
- 導入されたバージョン:
- 1.5
 
- 
appendpublic CharBuffer append(char c)指定されたcharをこのバッファに追加します (オプションの操作)。このメソッドを dst.append(c)の形式で呼び出した場合、次の呼び出しとまったく同様に動作します。dst.put(c)- 定義:
- append、インタフェース:- Appendable
- パラメータ:
- c- 追加する16ビットchar
- 戻り値:
- このバッファ
- 例外:
- BufferOverflowException- このバッファ内に残っている容量が不足している場合
- ReadOnlyBufferException- このバッファが読込み専用である場合
- 導入されたバージョン:
- 1.5
 
- 
orderpublic abstract ByteOrder order()このバッファのbyte順序を取得します。割り当てまたは既存の char配列のラップによって作成されたcharバッファのbyte順序は、基礎となるハードウェアのネイティブ順序と同じになります。 byteバッファのビューとして作成されたcharバッファのbyte順序は、ビューを作成した時点のbyteバッファのbyte順序と同じになります。- 戻り値:
- このバッファのbyte順序
 
 
-