クラスCharBuffer
- すべての実装されたインタフェース:
Appendable,CharSequence,Comparable<CharBuffer>,Readable
このクラスは、charバッファに対する操作を4つのカテゴリに分類します。
連続する文字シーケンスをこのバッファから配列に転送する絶対および相対的な
bulk getメソッド文字配列、文字列またはその他の文字バッファから連続する文字シーケンスをこのバッファに転送する、絶対および相対的な
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);
オプションの操作
「オプションの操作」として指定されたメソッドは、read-only CharBufferで呼び出されるとReadOnlyBufferExceptionをスローします。 CharBufferが「アクセス可能なchar配列」 (CharBufferが読取り専用かどうかに関係なく)に支えられていない場合、メソッド「配列」およびarrayOffsetはUnsupportedOperationExceptionをスローします。- 導入されたバージョン:
- 1.4
-
メソッドのサマリー
修飾子と型メソッド説明static CharBufferallocate(int capacity) 新しいcharバッファを割り当てます。append(char c) 指定されたcharをこのバッファに追加します (オプションの操作)。append(CharSequence csq) 指定されたcharシーケンスをこのバッファに追加します (オプションの操作)。append(CharSequence csq, int start, int end) 指定されたcharシーケンスのサブシーケンスをこのバッファに追加します (オプションの操作)。final char[]array()このバッファを補助するchar配列を返します (オプションの操作)。final intこのバッファの補助配列内にある、このバッファの最初の要素のオフセットを返します (オプションの操作)。abstract CharBufferこのバッファの内容を共有する新しい読込み専用charバッファを作成します。final charcharAt(int index) 現在位置からの相対位置として指定されたインデックス位置にあるcharを読み込みます。final CharBufferclear()このバッファをクリアします。abstract CharBuffercompact()このバッファを圧縮します (オプションの操作)。intcompareTo(CharBuffer that) このバッファを別のバッファと比較します。abstract CharBufferこのバッファの内容を共有する新しいcharバッファを作成します。booleanこのバッファが別のオブジェクトと等価であるかどうかを判断します。final CharBufferflip()このバッファをフリップ(反転)します。abstract charget()相対getメソッドです。get(char[] dst) 相対一括getメソッドです。get(char[] dst, int offset, int length) 相対一括getメソッドです。abstract charget(int index) 絶対getメソッドです。get(int index, char[] dst) 絶対一括getメソッド。get(int index, char[] dst, int offset, int length) 絶対一括getメソッド。final booleanhasArray()このバッファがアクセス可能なchar配列に連動するかどうかを判断します。inthashCode()このバッファの現在のハッシュ・コードを返します。abstract booleanisDirect()このcharバッファがダイレクト・バッファであるかどうかを判断します。final booleanisEmpty()この文字バッファが空の場合、trueを返します。final intlength()このcharバッファのバッファ長を返します。final CharBufferlimit(int newLimit) このバッファのリミットを設定します。final CharBuffermark()このバッファの現在位置にマークを設定します。intmismatch(CharBuffer that) このバッファと指定されたバッファの最初の不一致の相対索引を検索して戻します。abstract ByteOrderorder()このバッファのbyte順序を取得します。final CharBufferposition(int newPosition) このバッファの位置を設定します。abstract CharBufferput(char c) 相対putメソッドです (オプションの操作)。final CharBufferput(char[] src) 相対一括putメソッドです (オプションの操作)。put(char[] src, int offset, int length) 相対一括putメソッドです (オプションの操作)。abstract CharBufferput(int index, char c) 絶対putメソッドです (オプションの操作)。put(int index, char[] src) (optional operation)の絶対一括putメソッド。put(int index, char[] src, int offset, int length) (optional operation)の絶対一括putメソッド。put(int index, CharBuffer src, int offset, int length) (optional operation)の絶対一括putメソッド。final CharBuffer相対一括putメソッドです (オプションの操作)。相対一括putメソッドです (オプションの操作)。put(CharBuffer src) 相対一括putメソッドです (オプションの操作)。intread(CharBuffer target) 指定されたcharバッファにcharを読み込みます。final CharBufferreset()バッファの位置を以前にマークした位置に戻します。final CharBufferrewind()このバッファをリワインド(巻き戻し)します。abstract CharBufferslice()このバッファの内容の共有のサブシーケンスを内容とする新しいcharバッファを作成します。abstract CharBufferslice(int index, int length) このバッファの内容の共有のサブシーケンスを内容とする新しいcharバッファを作成します。abstract CharBuffersubSequence(int start, int end) このバッファの指定されたサブシーケンス(現在位置からの相対位置)を表す新しいcharバッファを作成します。toString()このバッファ内に残っている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シーケンスをバッファにラップします。クラスjava.nio.Bufferで宣言されたメソッド
capacity, hasRemaining, isReadOnly, limit, position, remainingインタフェースjava.lang.CharSequenceで宣言されたメソッド
chars, codePoints
-
メソッドの詳細
-
allocate
public static CharBuffer allocate(int capacity) 新しいcharバッファを割り当てます。新しいバッファの位置はゼロ、その制限は容量、マークは未定義、各要素はゼロに初期化され、そのバイト順序は基礎となるハードウェアの
native orderになります。backing arrayがあり、そのarray offsetはゼロになります。- パラメータ:
capacity- 新しいバッファの容量(char)- 戻り値:
- 新しいcharバッファ
- スロー:
IllegalArgumentException-capacityが負の整数である場合
-
wrap
public static CharBuffer wrap(char[] array, int offset, int length) char配列をバッファにラップします。新しいバッファは指定されたchar配列によって補助されます。バッファに変更を加えると配列も変更され、配列に変更を加えるとバッファも変更されます。 新しいバッファの容量は
array.length、位置はoffset、制限はoffset + length、マークは未定義、バイト順序は基礎となるハードウェアのnative orderになります。 そのbacking arrayは指定された配列になり、そのarray offsetはゼロになります。- パラメータ:
array- 新しいバッファを補助する配列offset- 使用するサブ配列のオフセット。負以外で、array.length以下である必要があります。 新しいバッファの位置は、この値に設定される。length- 使用するサブ配列の長さ。負以外で、array.length - offset以下である必要があります。 新しいバッファの制限はoffset + lengthに設定されます。- 戻り値:
- 新しいcharバッファ
- スロー:
IndexOutOfBoundsException-offsetパラメータとlengthパラメータの前提条件が満たされていない場合
-
wrap
public static CharBuffer wrap(char[] array) char配列をバッファにラップします。新しいバッファは指定されたchar配列によって補助されます。バッファに変更を加えると配列も変更され、配列に変更を加えるとバッファも変更されます。 新しいバッファの容量と制限は
array.length、その位置はゼロ、マークは未定義、バイト順序は基礎となるハードウェアのnative orderになります。 そのbacking arrayは指定された配列になり、そのarray offsetはゼロになります。- パラメータ:
array- このバッファを補助する配列- 戻り値:
- 新しいcharバッファ
-
read
public int read(CharBuffer target) throws IOException 指定されたcharバッファにcharを読み込みます。 バッファは、put操作の結果により変更される以外は、文字列そのままのリポジトリとして使用されます。 バッファのフリッピング(反転)やリワインド(巻き戻し)は行われません。 指定された文字バッファのlengthがゼロの場合、文字は読み取られず、ゼロが返されます。- 定義:
read、インタフェースReadable- パラメータ:
target- charを読み込むバッファ- 戻り値:
- バッファに追加された文字数(ゼロの可能性あり)または -1(この文字のソースが最後の場合)
- スロー:
IOException- 入出力エラーが発生した場合ReadOnlyBufferException- ターゲットが読取り専用バッファの場合(長さがゼロの場合でも)- 導入されたバージョン:
- 1.5
-
wrap
public static CharBuffer wrap(CharSequence csq, int start, int end) charシーケンスをバッファにラップします。新しい読取り専用バッファの内容は、指定されたcharシーケンスの内容になります。 バッファの容量は
csq.length()になり、その位置はstartになり、制限はendになり、マークは未定義になります。- パラメータ:
csq- 作成される新しいcharバッファの元になるcharシーケンスstart- 使用する最初の文字のインデックス。負以外で、csq.length()以下である必要があります。 新しいバッファの位置は、この値に設定される。end- 使用する最後の文字に続く文字のインデックス。startより小さく、csq.length()以下にする必要があります。 新しいバッファのリミットは、この値に設定される。- 戻り値:
- 新しいcharバッファ
- スロー:
IndexOutOfBoundsException-startおよびendパラメータの事前条件が保持されない場合
-
wrap
public static CharBuffer wrap(CharSequence csq) charシーケンスをバッファにラップします。新しい読取り専用バッファの内容は、指定されたcharシーケンスの内容になります。 新しいバッファの容量および制限は
csq.length()になり、その位置はゼロになり、マークは未定義になります。- パラメータ:
csq- 作成される新しいcharバッファの元になるcharシーケンス- 戻り値:
- 新しいcharバッファ
-
slice
public abstract CharBuffer slice()このバッファの内容の共有のサブシーケンスを内容とする新しいcharバッファを作成します。新しいバッファの内容は、このバッファの現在位置から始まります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置はゼロになり、その容量と制限はこのバッファに残っている文字数になり、マークは未定義になり、そのバイト順序はこのバッファの文字数と同じになります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。
-
slice
public 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
-
duplicate
public abstract CharBuffer duplicate()このバッファの内容を共有する新しいcharバッファを作成します。新しいバッファの内容は、このバッファの内容と同じになります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの容量、制限、位置、マーク値、およびバイト順序は、このバッファの容量と同一になります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。
-
asReadOnlyBuffer
public abstract CharBuffer asReadOnlyBuffer()このバッファの内容を共有する新しい読込み専用charバッファを作成します。新しいバッファの内容は、このバッファの内容と同じになります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。しかし、新しいバッファ自体は読取り専用であり、その共有内容を変更することはできません。 2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの容量、制限、位置、マーク値、およびバイト順序は、このバッファの容量と同一になります。
このバッファ自身が読込み専用の場合は、このメソッドは
duplicateと同じように動作します。- 戻り値:
- 新しい読込み専用charバッファ
-
get
public abstract char get()相対getメソッドです。 バッファの現在位置のcharを読み込み、現在位置の値を増加します。- 戻り値:
- バッファの現在位置のchar
- スロー:
BufferUnderflowException- バッファの現在位置がリミット以上である場合
-
put
public abstract CharBuffer put(char c) 相対putメソッドです (オプションの操作)。バッファの現在位置に指定されたcharを書き込み、現在位置の値を増加します。
- パラメータ:
c- 書き込まれるchar- 戻り値:
- このバッファ
- スロー:
BufferOverflowException- このバッファの現在位置がリミット以上である場合ReadOnlyBufferException- このバッファが読込み専用である場合
-
get
public abstract char get(int index) 絶対getメソッドです。 指定されたインデックス位置のcharを読み込みます。- パラメータ:
index- charの読込み位置を示すインデックス- 戻り値:
- 指定されたインデックス位置のchar
- スロー:
IndexOutOfBoundsException-indexが負の値であるか、バッファの制限より小さい値でない場合
-
put
public abstract CharBuffer put(int index, char c) 絶対putメソッドです (オプションの操作)。このバッファの指定されたインデックス位置に指定されたcharを書き込みます。
- パラメータ:
index- charの書込み先を示すインデックスc- 書き込まれるchar値- 戻り値:
- このバッファ
- スロー:
IndexOutOfBoundsException-indexが負の値であるか、バッファの制限より小さい値でない場合ReadOnlyBufferException- このバッファが読込み専用である場合
-
get
public CharBuffer get(char[] dst, int offset, int length) 相対一括getメソッドです。このメソッドは、このバッファから指定された配列へcharを転送します。 バッファに残っている文字数が、リクエストを満たすために必要な文字数より少ない場合、つまり、
length>remaining()の場合、文字は転送されず、BufferUnderflowExceptionがスローされます。それ以外の場合、このメソッドは、
length文字をこのバッファから指定された配列にコピーし、このバッファの現在の位置と配列内の指定されたオフセットから開始します。 このバッファの位置は、lengthによって増分されます。つまり、
src.get(dst, off, len)形式のこのメソッドの呼出しは、ループとまったく同じ効果がありますただし、このバッファ内に十分な数のchar数があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。for (int i = off; i < off + len; i++) dst[i] = src.get();- パラメータ:
dst- charの書込み先となる配列offset- 書き込まれる最初の文字の配列内のオフセット。負以外で、dst.length以下である必要がありますlength- 指定された配列に書き込まれる文字の最大数。負以外で、dst.length - offset以下である必要があります- 戻り値:
- このバッファ
- スロー:
BufferUnderflowException- このバッファに残っている文字数がlengthより少ない場合IndexOutOfBoundsException-offsetパラメータとlengthパラメータの前提条件が満たされていない場合
-
get
public CharBuffer get(char[] dst) 相対一括getメソッドです。このメソッドは、このバッファから指定された配列へcharを転送します。
src.get(a)形式のこのメソッドの起動は、起動とまったく同じように動作src.get(a, 0, a.length)- パラメータ:
dst- コピー先配列- 戻り値:
- このバッファ
- スロー:
BufferUnderflowException- このバッファに残っている文字数がlengthより少ない場合
-
get
public 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
-
get
public 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
-
put
public CharBuffer put(CharBuffer src) 相対一括putメソッドです (オプションの操作)。このメソッドは、指定されたソース・バッファ内に残っているcharをこのバッファへ転送します。 ソース・バッファに、このバッファよりも多くの文字が残っている場合、つまり、
src.remaining()>remaining()の場合、文字は転送されず、BufferOverflowExceptionがスローされます。それ以外の場合、このメソッドは、指定されたバッファのn =
src.remaining()charsを、各バッファの現在の位置からこのバッファにコピーします。 そのたびに、両方のバッファの位置がnずつ増加します。つまり、
dst.put(src)形式のこのメソッドの呼出しは、ループとまったく同じ効果がありますただし、このバッファ内に十分な容量があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。 このバッファとソース・バッファが同じバッキング配列またはメモリーを共有している場合、結果は、このバッファに書き込まれる前にソース要素が最初に中間のロケーションにコピーされたかのようになります。while (src.hasRemaining()) dst.put(src.get());- パラメータ:
src- charの読込み先となるソース・バッファ(このバッファ以外)- 戻り値:
- このバッファ
- スロー:
BufferOverflowException- このバッファに、ソース・バッファ内に残っているcharを格納できるだけの容量がない場合IllegalArgumentException- ソース・バッファとしてこのバッファを指定した場合ReadOnlyBufferException- このバッファが読込み専用である場合
-
put
public CharBuffer put(int index, CharBuffer src, int offset, int length) (optional operation)の絶対一括putメソッド。このメソッドは、ソース・バッファ内の指定された
offsetおよびこのバッファ内の指定されたindexからlengthcharをこのバッファに転送します。 両方のバッファの位置は変更されません。つまり、
dst.put(index, src, offset, length)形式のこのメソッドの呼出しは、ループとまったく同じ効果があります最初に、指定されたパラメータの一貫性をチェックし、より効率的になる可能性があることを除きます。 このバッファとソース・バッファが同じバッキング配列またはメモリーを共有している場合、結果は、このバッファに書き込まれる前にソース要素が最初に中間のロケーションにコピーされたかのようになります。for (int i = offset, j = index; i < offset + length; i++, j++) dst.put(j, src.get(i));- パラメータ:
index- 最初の文字が書き込まれるこのバッファ内のインデックス。limit()以上でない必要があります。src- charの読取り元バッファoffset- 読み込まれる最初のcharのソース・バッファ内のインデックス。負ではなく、src.limit()より小さい値である必要がありますlength- 指定されたバッファから読み取られる文字数。limit() - indexおよびsrc.limit() - offsetのいずれか小さい方より小さく、負でない値にする必要があります- 戻り値:
- このバッファ
- スロー:
IndexOutOfBoundsException-index、offsetおよびlengthパラメータの事前条件が満たされていない場合、それらを保持しませんReadOnlyBufferException- このバッファが読込み専用である場合- 導入されたバージョン:
- 16
-
put
public CharBuffer put(char[] src, int offset, int length) 相対一括putメソッドです (オプションの操作)。このメソッドは、指定されたソース配列からこのバッファへcharを転送します。 配列からコピーされる文字が、このバッファに残らない場合、つまり、
length>remaining()の場合、文字は転送されず、BufferOverflowExceptionがスローされます。それ以外の場合、このメソッドは、指定された配列からこのバッファに
length文字をコピーします。このバッファは、配列内の指定されたオフセットから、このバッファの現在の位置で始まります。 このバッファの位置は、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- このバッファが読込み専用である場合
-
put
public final CharBuffer put(char[] src) 相対一括putメソッドです (オプションの操作)。このメソッドは、ソースとなる指定されたchar配列の内容全体をこのバッファへ転送します。
dst.put(a)形式のこのメソッドの起動は、起動とまったく同じように動作dst.put(a, 0, a.length)- パラメータ:
src- 転送元配列- 戻り値:
- このバッファ
- スロー:
BufferOverflowException- このバッファ内に残っている容量が不足している場合ReadOnlyBufferException- このバッファが読込み専用である場合
-
put
public 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
-
put
public 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
-
put
public CharBuffer put(String src, int start, int end) 相対一括putメソッドです (オプションの操作)。このメソッドは、指定された文字列からこのバッファへcharを転送します。 文字列からコピーされる文字が、このバッファに残っている文字よりも多い場合、つまり、
end - start>remaining()の場合、文字は転送されず、BufferOverflowExceptionがスローされます。それ以外の場合、このメソッドはn =
endをコピー-指定された文字列からこのバッファへのstart文字。指定されたstart索引から、このバッファの現在の位置で始まります。 そのたびに、このバッファの位置がnずつ増加します。つまり、
dst.put(src, start, end)形式のこのメソッドの呼出しは、ループとまったく同じ効果がありますただし、このバッファ内に十分な容量があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。for (int i = start; i < end; i++) dst.put(src.charAt(i));- パラメータ:
src- 文字列の読込み先となる配列start- 読み取られる最初の文字の文字列内のオフセット。負以外で、string.length()以下である必要がありますend- 読み取る最後の文字の文字列内のオフセットに1を加えた値。負以外で、string.length()以下である必要があります- 戻り値:
- このバッファ
- スロー:
BufferOverflowException- このバッファ内に残っている容量が不足している場合IndexOutOfBoundsException-startおよびendパラメータの事前条件が保持されない場合ReadOnlyBufferException- このバッファが読込み専用である場合
-
put
public final CharBuffer put(String src) 相対一括putメソッドです (オプションの操作)。このメソッドは、指定されたソース文字列の内容全体をこのバッファへ転送します。
dst.put(s)形式のこのメソッドの起動は、起動とまったく同じように動作dst.put(s, 0, s.length())- パラメータ:
src- ソース文字列- 戻り値:
- このバッファ
- スロー:
BufferOverflowException- このバッファ内に残っている容量が不足している場合ReadOnlyBufferException- このバッファが読込み専用である場合
-
hasArray
public final boolean hasArray()このバッファがアクセス可能なchar配列に連動するかどうかを判断します。このメソッドが
trueを返す場合、arrayおよびarrayOffsetメソッドを安全に起動できます。 -
array
public final char[] array()このバッファを補助するchar配列を返します (オプションの操作)。このバッファの内容に変更を加えると、返される配列の内容も変更されます。その逆も同様です。
このメソッドを呼び出す前に
hasArrayメソッドを呼び出し、このバッファがアクセス可能な補助配列を持っていることを確認します。- 定義:
array、クラスBuffer- 戻り値:
- このバッファを補助する配列
- スロー:
ReadOnlyBufferException- このバッファが配列に連動しており、しかも読込み専用である場合UnsupportedOperationException- このバッファがアクセス可能な配列を利用しない場合
-
arrayOffset
public final int arrayOffset()このバッファの補助配列内にある、このバッファの最初の要素のオフセットを返します (オプションの操作)。このバッファが配列によってバックアップされる場合、バッファ位置pは配列索引p +
arrayOffset()に対応します。このメソッドを呼び出す前に
hasArrayメソッドを呼び出し、このバッファがアクセス可能な補助配列を持っていることを確認します。- 定義:
arrayOffset、クラスBuffer- 戻り値:
- このバッファの配列内にある、このバッファの最初の要素のオフセット
- スロー:
ReadOnlyBufferException- このバッファが配列に連動しており、しかも読込み専用である場合UnsupportedOperationException- このバッファがアクセス可能な配列を利用しない場合
-
position
public final CharBuffer position(int newPosition) このバッファの位置を設定します。 新しい位置の値よりもマークの値のほうが大きい場合、マークの定義は破棄されます。 -
limit
public final CharBuffer limit(int newLimit) このバッファのリミットを設定します。 位置の値が新しいリミットより大きい場合、リミットと同じ値に変更されます。 マークの値が新しいリミットより大きい場合、マークの定義は破棄されます。 -
mark
public final CharBuffer mark()このバッファの現在位置にマークを設定します。 -
reset
public final CharBuffer reset()バッファの位置を以前にマークした位置に戻します。このメソッドを呼び出しても、マークの値は変更されません。マークが破棄されることもありません。
-
clear
public final CharBuffer clear()このバッファをクリアします。 バッファの位置はゼロ、リミットは容量の値に設定されます。マークは破棄されます。一連のチャネル読込み操作または「put」操作を使用してこのバッファにデータを格納する前に、このメソッドを呼び出します。 たとえば、
buf.clear(); // Prepare buffer for reading in.read(buf); // Read dataこのメソッドはバッファ内のデータを実際に消去するわけではありません。しかし、そうした状況で使用されるため、クリアと命名されています。
-
flip
public 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メソッドと組み合わせて使用することがあります。 -
rewind
public final CharBuffer rewind()このバッファをリワインド(巻き戻し)します。 位置はゼロに設定され、マークは破棄されます。このメソッドは、リミットを正しく設定したあと、一連のチャネル書込み操作(get)の前に呼び出します。 たとえば、
out.write(buf); // Write remaining data buf.rewind(); // Rewind buffer buf.get(array); // Copy data into array -
compact
public abstract CharBuffer compact()このバッファを圧縮します (オプションの操作)。バッファの現在位置からリミットまでの間にcharが存在する場合、これらをバッファの先頭にコピーします。 つまり、索引p =
position()のcharは索引0にコピーされ、索引p + 1のcharは索引1にコピーされ、索引limit()のcharまでコピーされます-1が索引n =limit()にコピーされます-1-p. 最終的にバッファの位置はn+1に設定され、リミットは容量の値と等しくなります。 マークは破棄されます。バッファの位置は、ゼロではなく、コピーされるchar数と等しくなります。したがって、このメソッドを呼び出したあと、すぐに別の相対「put」メソッドを呼び出すことができます。
- 戻り値:
- このバッファ
- スロー:
ReadOnlyBufferException- このバッファが読込み専用である場合
-
isDirect
-
hashCode
-
equals
public boolean equals(Object ob) このバッファが別のオブジェクトと等価であるかどうかを判断します。2つのcharバッファは、次の場合にかぎり等価です。
要素の型が同じである
バッファ内に残っている要素数が同じである
バッファ内に残っている要素のシーケンス(開始位置とは無関係)が各点で等しい(pointwise equal)
charバッファが、その他の型のオブジェクトと等価になることはありません。
-
compareTo
public int compareTo(CharBuffer that) このバッファを別のバッファと比較します。2つのcharバッファを比較する際は、バッファ内に残っている要素のシーケンスが辞書順に比較されます。このとき、双方のバッファ内に残っているシーケンスの開始位置は考慮されません。
Character.compare(char,char)を呼び出したかのように、char要素のペアが比較されます。charバッファとその他の型のオブジェクトを比較することはできません。
- 定義:
compareTo、インタフェースComparable<CharBuffer>- パラメータ:
that- 比較対象のオブジェクト。- 戻り値:
- このバッファが指定されたバッファより小さい場合は負の整数、等しい場合はゼロ、大きい場合は正の整数
-
mismatch
public int mismatch(CharBuffer that) このバッファと指定されたバッファの最初の不一致の相対索引を検索して戻します。 インデックスは各バッファのpositionに相対的であり、0 (包含)から各バッファのremainingの要素(除外)まで範囲になります。2つのバッファが共通プレフィクスを共有している場合、戻される索引は共通プレフィクスの長さとなり、各バッファ内のその索引の2つのバッファ間に不一致があることに従います。 一方のバッファがもう一方のバッファのプレフィクスである場合、戻された索引は各バッファ内の残りの要素の小さい方になり、残りの要素の数が多いバッファに対してのみ索引が有効になります。 それ以外の場合は、不一致はありません。
- パラメータ:
that- このバッファと不一致をテストするためのバイト・バッファ- 戻り値:
- このバッファと指定されたバッファの最初の不一致の相対索引です。一致しない場合は -1です。
- 導入されたバージョン:
- 11
-
toString
public String toString()このバッファ内に残っているcharを含む文字列を返します。結果の文字列の最初の文字は、このバッファの位置にある文字になり、最後の文字は索引
limit()-1の文字になります。 このメソッドを呼び出しても、バッファの位置は変わりません。- 定義:
toString、インタフェースCharSequence- オーバーライド:
toString、クラスObject- 戻り値:
- 指定された文字列
-
length
public final int length()このcharバッファのバッファ長を返します。文字シーケンスとして表示される場合、文字バッファの長さは、位置(包含)と制限(除外)の間の文字数にすぎません。つまり、
remaining()と同等です。- 定義:
length、インタフェースCharSequence- 戻り値:
- このcharバッファのバッファ長
-
isEmpty
public final boolean isEmpty()この文字バッファが空の場合、trueを返します。- 定義:
- インタフェース
CharSequence内のisEmpty - 戻り値:
0の残りの文字がある場合はtrue、それ以外の場合はfalse- 導入されたバージョン:
- 15
-
charAt
public final char charAt(int index) 現在位置からの相対位置として指定されたインデックス位置にあるcharを読み込みます。- 定義:
charAt、インタフェースCharSequence- パラメータ:
index- 位置を基準とした、読み取る文字のインデックス。負以外でremaining()より小さくする必要があります- 戻り値:
- 索引
position() + indexの文字 - スロー:
IndexOutOfBoundsException-indexの前提条件が保持されない場合
-
subSequence
public abstract CharBuffer subSequence(int start, int end) このバッファの指定されたサブシーケンス(現在位置からの相対位置)を表す新しいcharバッファを作成します。新しいバッファは、このバッファの内容を共有します。つまり、このバッファの内容が変更可能である場合、一方のバッファに変更を加えると他方のバッファも変更されます。新しいバッファの容量はこのバッファの容量と同じになります。 新しいバッファ容量は、このバッファの容量、その位置は
position()+start、その制限はposition()+endとなり、そのバイト順序はこのバッファの容量と同じです。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。- 定義:
subSequence、インタフェースCharSequence- パラメータ:
start- 部分列内の最初の文字の現在の位置に対する相対索引。負以外で、remaining()以下にする必要がありますend- 部分列の最後の文字に続く文字の現在の位置を基準とする索引。startより小さく、remaining()以下にする必要があります- 戻り値:
- 新しいcharバッファ
- スロー:
IndexOutOfBoundsException-startおよびendの前提条件が保持されない場合
-
append
public CharBuffer append(CharSequence csq) 指定されたcharシーケンスをこのバッファに追加します (オプションの操作)。dst.append(csq)形式のこのメソッドの起動は、起動とまったく同じように動作dst.put(csq.toString())文字シーケンス
csqのtoStringの指定によっては、シーケンス全体が追加されない場合があります。 たとえば、charバッファのtoStringメソッドを呼び出した場合、そのバッファの位置とリミットによって決まる内容を持つサブシーケンスが返されます。- 定義:
append、インタフェースAppendable- パラメータ:
csq- 追加するcharシーケンス。csqがnullの場合、この文字バッファには4文字の"null"が追加されます。- 戻り値:
- このバッファ
- スロー:
BufferOverflowException- このバッファ内に残っている容量が不足している場合ReadOnlyBufferException- このバッファが読込み専用である場合- 導入されたバージョン:
- 1.5
-
append
public 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に4文字の"null"が含まれているかのように、文字が追加されます。start- サブシーケンスの最初のcharのインデックスend- サブシーケンスの最後のcharのあとに続くcharのインデックス- 戻り値:
- このバッファ
- スロー:
BufferOverflowException- このバッファ内に残っている容量が不足している場合IndexOutOfBoundsException-startまたはendが負の場合、startがendより大きいか、endがcsq.length()より大きいですReadOnlyBufferException- このバッファが読込み専用である場合- 導入されたバージョン:
- 1.5
-
append
public CharBuffer append(char c) 指定されたcharをこのバッファに追加します (オプションの操作)。dst.append(c)形式のこのメソッドの起動は、起動とまったく同じように動作dst.put(c)- 定義:
append、インタフェースAppendable- パラメータ:
c- 追加する16ビットchar- 戻り値:
- このバッファ
- スロー:
BufferOverflowException- このバッファ内に残っている容量が不足している場合ReadOnlyBufferException- このバッファが読込み専用である場合- 導入されたバージョン:
- 1.5
-
order
public abstract ByteOrder order()このバッファのbyte順序を取得します。割当てまたは既存の
char配列のラップによって作成されるcharバッファのバイト順序は、基礎となるハードウェアのnative orderです。 byteバッファのビューとして作成されたcharバッファのbyte順序は、ビューを作成した時点のbyteバッファのbyte順序と同じになります。- 戻り値:
- このバッファのbyte順序
-