モジュール java.base
パッケージ java.nio

クラスCharBuffer

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

public abstract sealed class CharBuffer extends Buffer implements Comparable<CharBuffer>, Appendable, CharSequence, Readable
charバッファです。

このクラスは、charバッファに対する操作を4つのカテゴリに分類します。

  • 単一char値の読み込みと書込みを行う絶対および相対get/putメソッド。

  • 連続する文字シーケンスをこのバッファから配列に転送する絶対および相対的なbulk getメソッド

  • 文字配列、文字列またはその他の文字バッファから連続する文字シーケンスをこのバッファに転送する、絶対および相対的なbulk putメソッド

  • charバッファをcompactingするためのメソッド。

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

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

このクラスはCharSequenceインタフェースを実装しています。このため、charシーケンスが受け付けられる場所であればどこでも、charバッファを使用できます。たとえば、正規表現のパッケージ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が読取り専用かどうかに関係なく)に支えられていない場合、メソッド「配列」およびarrayOffsetUnsupportedOperationExceptionをスローします。
導入されたバージョン:
1.4
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    static CharBuffer
    allocate(int capacity)
    新しいcharバッファを割り当てます。
    append(char c)
    指定されたcharをこのバッファに追加します  (オプションの操作)
    指定されたcharシーケンスをこのバッファに追加します  (オプションの操作)
    append(CharSequence csq, int start, int end)
    指定されたcharシーケンスのサブシーケンスをこのバッファに追加します  (オプションの操作)
    final char[]
    このバッファを補助するchar配列を返します  (オプションの操作)
    final int
    このバッファの補助配列内にある、このバッファの最初の要素のオフセットを返します  (オプションの操作)
    abstract CharBuffer
    このバッファの内容を共有する新しい読込み専用charバッファを作成します。
    final char
    charAt(int index)
    現在位置からの相対位置として指定されたインデックス位置にあるcharを読み込みます。
    このバッファをクリアします。
    abstract CharBuffer
    このバッファを圧縮します  (オプションの操作)
    int
    このバッファを別のバッファと比較します。
    abstract CharBuffer
    このバッファの内容を共有する新しいcharバッファを作成します。
    boolean
    このバッファが別のオブジェクトと等価であるかどうかを判断します。
    このバッファをフリップ(反転)します。
    abstract char
    get()
    相対getメソッドです。
    get(char[] dst)
    相対一括getメソッドです。
    get(char[] dst, int offset, int length)
    相対一括getメソッドです。
    abstract char
    get(int index)
    絶対getメソッドです。
    get(int index, char[] dst)
    絶対一括getメソッド。
    get(int index, char[] dst, int offset, int length)
    絶対一括getメソッド。
    final boolean
    このバッファがアクセス可能なchar配列に連動するかどうかを判断します。
    int
    このバッファの現在のハッシュ・コードを返します。
    abstract boolean
    このcharバッファがダイレクト・バッファであるかどうかを判断します。
    final boolean
    この文字バッファが空の場合、trueを返します。
    final int
    このcharバッファのバッファ長を返します。
    limit(int newLimit)
    このバッファのリミットを設定します。
    このバッファの現在位置にマークを設定します。
    int
    このバッファと指定されたバッファの最初の不一致の相対索引を検索して戻します。
    abstract ByteOrder
    このバッファのbyte順序を取得します。
    position(int newPosition)
    このバッファの位置を設定します。
    abstract CharBuffer
    put(char c)
    相対putメソッドです  (オプションの操作)
    put(char[] src)
    相対一括putメソッドです  (オプションの操作)
    put(char[] src, int offset, int length)
    相対一括putメソッドです  (オプションの操作)
    abstract CharBuffer
    put(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メソッド。
    put(String src)
    相対一括putメソッドです  (オプションの操作)
    put(String src, int start, int end)
    相対一括putメソッドです  (オプションの操作)
    相対一括putメソッドです  (オプションの操作)
    int
    read(CharBuffer target)
    指定されたcharバッファにcharを読み込みます。
    バッファの位置を以前にマークした位置に戻します。
    このバッファをリワインド(巻き戻し)します。
    abstract CharBuffer
    このバッファの内容の共有のサブシーケンスを内容とする新しいcharバッファを作成します。
    abstract CharBuffer
    slice(int index, int length)
    このバッファの内容の共有のサブシーケンスを内容とする新しいcharバッファを作成します。
    abstract CharBuffer
    subSequence(int start, int end)
    このバッファの指定されたサブシーケンス(現在位置からの相対位置)を表す新しいcharバッファを作成します。
    このバッファ内に残っているcharを含む文字列を返します。
    static CharBuffer
    wrap(char[] array)
    char配列をバッファにラップします。
    static CharBuffer
    wrap(char[] array, int offset, int length)
    char配列をバッファにラップします。
    static CharBuffer
    charシーケンスをバッファにラップします。
    static CharBuffer
    wrap(CharSequence csq, int start, int end)
    charシーケンスをバッファにラップします。

    クラスjava.nio.Bufferで宣言されたメソッド

    capacity, hasRemaining, isReadOnly, limit, position, remaining

    クラスjava.lang.Objectで宣言されたメソッド

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait

    インタフェースjava.lang.CharSequenceで宣言されたメソッド

    chars, codePoints
  • メソッドの詳細

    • allocate

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

      新しいバッファの位置はゼロ、その制限は容量、マークは未定義、各要素はゼロに初期化され、そのバイト順序は基礎となるハードウェアのnative orderになります。 補助配列を持ち、配列オフセットはゼロになります。

      パラメータ:
      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になります。 指定された配列が補助配列となり、その配列オフセットはゼロになります。

      パラメータ:
      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になります。 指定された配列が補助配列となり、その配列オフセットはゼロになります。

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

      public int read(CharBuffer target) throws IOException
      指定されたcharバッファにcharを読み込みます。 バッファは、put操作の結果により変更される以外は、文字列そのままのリポジトリとして使用されます。 バッファのフリッピング(反転)やリワインド(巻き戻し)は行われません。
      定義:
      read、インタフェースReadable
      パラメータ:
      target - charを読み込むバッファ
      戻り値:
      バッファに追加されたcharの数。charのソースが最後の位置にある場合は -1
      例外:
      IOException - 入出力エラーが発生した場合
      ReadOnlyBufferException - targetが読取り専用バッファの場合
      導入されたバージョン:
      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つのバッファの位置、リミット、マークの値はそれぞれ異なります。

      新しいバッファの位置はゼロになり、その容量と制限はこのバッファに残っている文字数になり、マークは未定義になり、そのバイト順序はこのバッファの文字数と同じになります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。

      定義:
      クラスBufferslice
      戻り値:
      新しいcharバッファ
    • slice

      public abstract CharBuffer slice(int index, int length)
      このバッファの内容の共有のサブシーケンスを内容とする新しいcharバッファを作成します。

      新しいバッファの内容は、このバッファ内のindexの位置から始まり、length要素が含まれます。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。

      新しいバッファ位置はゼロ、容量とリミットはlength、マークは未定義、バイト順序はこのバッファのものと同一です。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。

      定義:
      クラスBufferslice
      パラメータ:
      index - 新しいバッファの内容が開始される、このバッファ内の位置。limit()以外の値である必要があります。
      length - 新規バッファに含まれる要素の数。負以外でlimit() - indexより大きい値である必要があります。
      戻り値:
      新しいバッファ
      例外:
      IndexOutOfBoundsException - indexが、limit()以上の場合、lengthがマイナスまたはlength > limit() - index
      導入されたバージョン:
      13
    • duplicate

      public abstract CharBuffer duplicate()
      このバッファの内容を共有する新しいcharバッファを作成します。

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

      新しいバッファの容量、制限、位置、マーク値、およびバイト順序は、このバッファの容量と同一になります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。

      定義:
      クラスBufferduplicate
      戻り値:
      新しいcharバッファ
    • 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)形式のこのメソッドの呼出しは、ループとまったく同じ効果があります

          for (int i = off; i < off + len; i++)
              dst[i] = src.get();
      
      ただし、このバッファ内に十分な数のchar数があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。

      パラメータ:
      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 - indexoffsetおよび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からlength charをこのバッファに転送します。 両方のバッファの位置は変更されません。

      つまり、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 - indexoffsetおよび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 - indexoffsetおよび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メソッドを安全に起動できます。

      定義:
      hasArray、クラスBuffer
      戻り値:
      このバッファが配列によってバックアップされ、読取り専用でない場合のみ、true
    • 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)
      このバッファの位置を設定します。 新しい位置の値よりもマークの値のほうが大きい場合、マークの定義は破棄されます。
      オーバーライド:
      クラスBufferposition
      パラメータ:
      newPosition - 新しい位置の値は、現在のリミット以下の負でない値でなければならない
      戻り値:
      このバッファ
      導入されたバージョン:
      9
    • limit

      public final CharBuffer limit(int newLimit)
      このバッファのリミットを設定します。 位置の値が新しいリミットより大きい場合、リミットと同じ値に変更されます。 マークの値が新しいリミットより大きい場合、マークの定義は破棄されます。
      オーバーライド:
      クラスBufferlimit
      パラメータ:
      newLimit - 新しいリミット値は、このバッファの容量以下の負でない値でなければならない
      戻り値:
      このバッファ
      導入されたバージョン:
      9
    • mark

      public final CharBuffer mark()
      このバッファの現在位置にマークを設定します。
      オーバーライド:
      クラスBuffermark
      戻り値:
      このバッファ
      導入されたバージョン:
      9
    • reset

      public final CharBuffer reset()
      バッファの位置を以前にマークした位置に戻します。

      このメソッドを呼び出しても、マークの値は変更されません。マークが破棄されることもありません。

      オーバーライド:
      クラスBufferreset
      戻り値:
      このバッファ
      導入されたバージョン:
      9
    • clear

      public final CharBuffer clear()
      このバッファをクリアします。 バッファの位置はゼロ、リミットは容量の値に設定されます。マークは破棄されます。

      一連のチャネル読込み操作または「put」操作を使用してこのバッファにデータを格納する前に、このメソッドを呼び出します。 たとえば、

          buf.clear();     // Prepare buffer for reading
          in.read(buf);    // Read data
      

      このメソッドはバッファ内のデータを実際に消去するわけではありません。しかし、そうした状況で使用されるため、クリアと命名されています。

      オーバーライド:
      クラスBufferclear
      戻り値:
      このバッファ
      導入されたバージョン:
      9
    • 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メソッドと組み合わせて使用することがあります。

      オーバーライド:
      クラスBufferflip
      戻り値:
      このバッファ
      導入されたバージョン:
      9
    • rewind

      public final CharBuffer rewind()
      このバッファをリワインド(巻き戻し)します。 位置はゼロに設定され、マークは破棄されます。

      このメソッドは、リミットを正しく設定したあと、一連のチャネル書込み操作(get)の前に呼び出します。 たとえば、

          out.write(buf);    // Write remaining data
          buf.rewind();      // Rewind buffer
          buf.get(array);    // Copy data into array
      

      オーバーライド:
      クラスBufferrewind
      戻り値:
      このバッファ
      導入されたバージョン:
      9
    • 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

      public abstract boolean isDirect()
      このcharバッファがダイレクト・バッファであるかどうかを判断します。
      定義:
      isDirect、クラスBuffer
      戻り値:
      true、このバッファが直接の場合のみ
    • hashCode

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

      charバッファのハッシュ・コードは、残りの要素にのみ依存します。つまり、position()の要素からlimit()の要素までの要素、およびそれに含まれる要素によって決まります-1

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

      オーバーライド:
      hashCode、クラスObject
      戻り値:
      このバッファの現在のハッシュ・コード
      関連項目:
    • equals

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

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

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

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

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

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

      オーバーライド:
      equals、クラスObject
      パラメータ:
      ob - このバッファと比較するオブジェクト
      戻り値:
      このバッファが指定されたオブジェクトと等しい場合のみ、true
      関連項目:
    • 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に相対的であり、各バッファ(inclusive)の範囲が各バッファremainingの範囲内で小さくなる。

      2つのバッファが共通プレフィクスを共有している場合、戻される索引は共通プレフィクスの長さとなり、各バッファ内のその索引の2つのバッファ間に不一致があることに従います。 一方のバッファがもう一方のバッファのプレフィクスである場合、戻された索引は各バッファ内の残りの要素の小さい方になり、残りの要素の数が多いバッファに対してのみ索引が有効になります。 それ以外の場合は、不一致はありません。

      パラメータ:
      that - このバッファと不一致をテストするためのバイト・バッファ
      戻り値:
      このバッファと指定されたバッファの最初の不一致の相対索引です。一致しない場合は -1です。
      導入されたバージョン:
      11
    • toString

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

      結果の文字列の最初の文字は、このバッファの位置にある文字になり、最後の文字は索引limit()-1の文字になります。 このメソッドを呼び出しても、バッファの位置は変わりません。

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

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

      文字シーケンスとして表示される場合、文字バッファの長さは、位置(inclusive)と制限(exclusive)の間の文字数にすぎません。つまり、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())
      

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

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

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

      csqnullでない場合、dst.append(csq, start, end)という形式のこのメソッドの呼出しは、起動とまったく同じように動作

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

      定義:
      append、インタフェースAppendable
      パラメータ:
      csq - サブシーケンスの追加元のcharシーケンス。 csqnullの場合、csqに4文字の"null"が含まれているかのように、文字が追加されます。
      start - サブシーケンスの最初のcharのインデックス
      end - サブシーケンスの最後のcharのあとに続くcharのインデックス
      戻り値:
      このバッファ
      例外:
      BufferOverflowException - このバッファ内に残っている容量が不足している場合
      IndexOutOfBoundsException - startまたはendが負の場合、startendより大きいか、endcsq.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順序