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

クラスCharBuffer

  • すべての実装されたインタフェース:
    Appendable, CharSequence, Comparable<CharBuffer>, Readable


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

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

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

    • 連続したcharシーケンスをこのバッファから配列へと転送する相対一括getメソッド。

    • 連続したcharシーケンスをchar配列、文字列またはその他のcharバッファからこのバッファへと転送する相対一括putメソッド。

    • charバッファのcompactingメソッドです。

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

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

    このクラスはCharSequenceインタフェースを実装しているため、正規表現パッケージ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メソッド インスタンス・メソッド 抽象メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      static CharBuffer allocate​(int capacity)
      新しいcharバッファを割り当てます。
      CharBuffer append​(char c)
      指定されたcharをこのバッファに追加します  (オプションの操作)
      CharBuffer append​(CharSequence csq)
      指定されたcharシーケンスをこのバッファに追加します  (オプションの操作)
      CharBuffer append​(CharSequence csq, int start, int end)
      指定されたcharシーケンスのサブシーケンスをこのバッファに追加します  (オプションの操作)
      char[] array​()
      このバッファを補助するchar配列を返します  (オプションの操作)
      int arrayOffset​()
      このバッファの補助配列内にある、このバッファの最初の要素のオフセットを返します  (オプションの操作)
      abstract CharBuffer asReadOnlyBuffer​()
      このバッファの内容を共有する新しい読込み専用charバッファを作成します。
      char charAt​(int index)
      現在位置からの相対位置として指定されたインデックス位置にあるcharを読み込みます。
      IntStream chars​()
      このシーケンスのchar値をゼロ拡張したintを含むストリームを返します。
      CharBuffer clear​()
      このバッファをクリアします。
      abstract CharBuffer compact​()
      このバッファを圧縮します  (オプションの操作)
      int compareTo​(CharBuffer that)
      このバッファを別のバッファと比較します。
      abstract CharBuffer duplicate​()
      このバッファの内容を共有する新しいcharバッファを作成します。
      boolean equals​(Object ob)
      このバッファが別のオブジェクトと等価であるかどうかを判断します。
      CharBuffer flip​()
      このバッファをフリップ(反転)します。
      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バッファのバッファ長を返します。
      CharBuffer limit​(int newLimit)
      このバッファのリミットを設定します。
      CharBuffer mark​()
      このバッファの現在位置にマークを設定します。
      abstract ByteOrder order​()
      このバッファのbyte順序を取得します。
      CharBuffer position​(int newPosition)
      このバッファの位置を設定します。
      abstract CharBuffer put​(char c)
      相対putメソッドです  (オプションの操作)
      CharBuffer put​(char[] src)
      相対一括putメソッドです  (オプションの操作)
      CharBuffer put​(char[] src, int offset, int length)
      相対一括putメソッドです  (オプションの操作)
      abstract CharBuffer put​(int index, char c)
      絶対putメソッドです  (オプションの操作)
      CharBuffer put​(String src)
      相対一括putメソッドです  (オプションの操作)
      CharBuffer put​(String src, int start, int end)
      相対一括putメソッドです  (オプションの操作)
      CharBuffer put​(CharBuffer src)
      相対一括putメソッドです  (オプションの操作)
      int read​(CharBuffer target)
      指定されたcharバッファにcharを読み込みます。
      CharBuffer reset​()
      バッファの位置を以前にマークした位置に戻します。
      CharBuffer rewind​()
      このバッファをリワインド(巻き戻し)します。
      abstract CharBuffer slice​()
      このバッファの内容の共有のサブシーケンスを内容とする新しいcharバッファを作成します。
      abstract CharBuffer subSequence​(int start, int end)
      このバッファの指定されたサブシーケンス(現在位置からの相対位置)を表す新しいcharバッファを作成します。
      String toString​()
      このバッファ内に残っているcharを含む文字列を返します。
      static CharBuffer wrap​(char[] array)
      char配列をバッファにラップします。
      static CharBuffer wrap​(char[] array, int offset, int length)
      char配列をバッファにラップします。
      static CharBuffer wrap​(CharSequence csq)
      charシーケンスをバッファにラップします。
      static CharBuffer wrap​(CharSequence csq, int start, int end)
      charシーケンスをバッファにラップします。
    • メソッドの詳細

      • allocate

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

        新しいバッファの位置は0になり、その限界はその容量になり、マークは未定義になり、各要素はゼロに初期化され、バイト・オーダーは基礎となるハードウェアの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 - 入出力エラーが発生した場合
        NullPointerException - targetがnullの場合
        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 - 使用される最初のcharを示すインデックス。csq.length()以下の負でない値でなければならない。 新しいバッファの位置は、この値に設定される。
        end - 使用される最後のcharのあとに続くcharを示すインデックス。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バッファ
      • 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を転送します。 このバッファ内に残っているchar数が要求に満たない場合(つまり、length > remaining()である場合)、charは一切転送されず、BufferUnderflowExceptionがスローされます。

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

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

        
             for (int i = off; i < off + len; i++)
                 dst[i] = src.get():
         
        ただし、このバッファ内に十分な数のchar数があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。
        パラメータ:
        dst - charの書込み先となる配列
        offset - 最初のcharの書込み先となる配列内のオフセット。dst.length以下の負でない値でなければならない
        length - 指定された配列に書き込まれる最大char数。dst.length - offset以下の負でない値でなければならない
        戻り値:
        このバッファ
        例外:
        BufferUnderflowException - このバッファ内に残っているchar数がlengthよりも少ない場合
        IndexOutOfBoundsException - offsetパラメータとlengthパラメータの前提条件が満たされていない場合
      • get

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

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

             src.get(a, 0, a.length) 
        パラメータ:
        dst - コピー先配列
        戻り値:
        このバッファ
        例外:
        BufferUnderflowException - このバッファ内に残っているchar数がlengthよりも少ない場合
      • put

        public 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 - このバッファが読込み専用である場合
      • put

        public 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(a[i]);
         
        ただし、このバッファ内に十分な容量があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。
        パラメータ:
        src - charの読込み先となる配列
        offset - 最初のcharの読込み先となる配列内のオフセット。array.length以下の負でない値にする必要がある
        length - 指定された配列から読み取られるchar数。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) 
        パラメータ:
        src - 転送元配列
        戻り値:
        このバッファ
        例外:
        BufferOverflowException - このバッファ内に残っている容量が不足している場合
        ReadOnlyBufferException - このバッファが読込み専用である場合
      • put

        public CharBuffer put​(String src,
                              int start,
                              int end)
        相対一括putメソッドです  (オプションの操作)

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

        それ以外の場合、このメソッドは、指定された文字列のstartインデックスからこのバッファの現在位置へn = end - start charをコピーします。 そのたびに、このバッファの位置が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 - このバッファが読込み専用である場合
      • 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 - 新しい位置の値は、現在のリミット以下の負でない値でなければならない
        戻り値:
        このバッファ
      • limit

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

        public final CharBuffer mark​()
        このバッファの現在位置にマークを設定します。
        オーバーライド:
        クラスBuffermark
        戻り値:
        このバッファ
      • reset

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

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

        オーバーライド:
        クラスBufferreset
        戻り値:
        このバッファ
      • clear

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

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

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

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

        オーバーライド:
        クラスBufferclear
        戻り値:
        このバッファ
      • 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
        戻り値:
        このバッファ
      • rewind

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

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

         out.write(buf);    // Write remaining data
         buf.rewind();      // Rewind buffer
         buf.get(array);    // Copy data into array
        オーバーライド:
        クラスBufferrewind
        戻り値:
        このバッファ
      • compact

        public abstract CharBuffer compact​()
        このバッファを圧縮します  (オプションの操作)

        バッファの現在位置からリミットまでの間にcharが存在する場合、これらをバッファの先頭にコピーします。 つまり、インデックス位置p = position()のcharがインデックス・ゼロにコピーされ、インデックス位置p + 1のcharがインデックス1にコピーされるということです。インデックス位置limit() - 1のcharがインデックス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
        戻り値:
        このバッファの現在のハッシュ・コード
        関連項目:
        Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)
      • equals

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

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

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

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

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

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

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

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

        2つのcharバッファを比較する際は、バッファ内に残っている要素のシーケンスが辞書順に比較されます。このとき、双方のバッファ内に残っているシーケンスの開始位置は考慮されません。 Character.compare(char,char)を呼び出したかのように、char要素のペアが比較されます。

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

        定義:
        compareTo、インタフェース: Comparable<CharBuffer>
        パラメータ:
        that - 比較対象のオブジェクト。
        戻り値:
        このバッファが指定されたバッファより小さい場合は負の整数、等しい場合はゼロ、大きい場合は正の整数
      • toString

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

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

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

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

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

        定義:
        length、インタフェース: CharSequence
        戻り値:
        このcharバッファのバッファ長
      • charAt

        public final char charAt​(int index)
        現在位置からの相対位置として指定されたインデックス位置にあるcharを読み込みます。
        定義:
        charAt、インタフェース: CharSequence
        パラメータ:
        index - 読み取られるcharのインデックス(現在位置からの相対位置)。この値はremaining()以下の負でない値でなければならない
        戻り値:
        インデックス位置position() + indexにあるchar
        例外:
        IndexOutOfBoundsException - indexの前提条件が満たされていない場合
      • subSequence

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

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

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

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

        このメソッドをdst.append(csq)の形式で呼び出した場合、次の呼び出しとまったく同様に動作します。

             dst.put(csq.toString()) 

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

        定義:
        append、インタフェース: Appendable
        パラメータ:
        csq - 追加するcharシーケンス。 csqnullの場合は、このcharバッファにnullという4 charが追加される。
        戻り値:
        このバッファ
        例外:
        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の場合は、csqnullという4 charが含まれているかのようにcharが追加される
        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バッファのbyte順序は、基礎となるハードウェアのネイティブ順序と同じになります。 byteバッファのビューとして作成されたcharバッファのbyte順序は、ビューを作成した時点のbyteバッファのbyte順序と同じになります。

        戻り値:
        このバッファのbyte順序
      • chars

        public IntStream chars​()
        次のインタフェースからコピーされた説明: CharSequence
        このシーケンスのchar値をゼロ拡張したintを含むストリームを返します。 サロゲート・コード・ポイントにマップするすべてのcharは、解釈されずに渡されます。

        ストリームは、ターミナル・ストリーム操作が(具体的には、可変シーケンスの場合、ストリームのスプライテータはlate-binding)で始まるときにこのシーケンスにバインドされます。 その操作中にシーケンスが変更された場合、結果は未定義です。

        定義:
        chars、インタフェース: CharSequence
        戻り値:
        このシーケンスのchar値のIntStream