クラス DefaultDataBuffer

java.lang.ObjectSE
org.springframework.core.io.buffer.DefaultDataBuffer
実装されたすべてのインターフェース:
DataBuffer

public class DefaultDataBuffer extends ObjectSE implements DataBuffer
内部で ByteBufferSE を使用する DataBuffer インターフェースのデフォルト実装。読み取りと書き込みの位置が異なります。DefaultDataBufferFactory を使用して構築されています。

Netty の ByteBuf に触発されました。非 Netty ランタイム(つまりサーブレット)がクラスパスに Netty を必要としないように導入されました。

導入:
5.0
作成者:
Arjen Poutsma, Juergen Hoeller, Brian Clozel
関連事項:
  • メソッドの詳細

    • getNativeBuffer

      public ByteBufferSE getNativeBuffer()
      現在の readPosition()readableByteCount() に一致するように、このバッファーが ByteBuffer's の位置と制限の更新にも基づいているネイティブ ByteBuffer を直接公開します。
      戻り値:
      ラップされたバイトバッファ
    • factory

      public DefaultDataBufferFactory factory()
      インターフェースからコピーされた説明: DataBuffer
      このバッファーを作成した DataBufferFactory を返します。
      次で指定:
      インターフェース DataBufferfactory 
      戻り値:
      作成バッファーファクトリ
    • indexOf

      public int indexOf(IntPredicateSE predicate, int fromIndex)
      インターフェースからコピーされた説明: DataBuffer
      指定された述語に一致するこのバッファーの最初のバイトのインデックスを返します。
      次で指定:
      インターフェース DataBufferindexOf 
      パラメーター:
      predicate - 一致する述語
      fromIndex - 検索を開始するインデックス
      戻り値:
      predicate に一致する最初のバイトのインデックス。または、一致するものがない場合は -1 
    • lastIndexOf

      public int lastIndexOf(IntPredicateSE predicate, int fromIndex)
      インターフェースからコピーされた説明: DataBuffer
      指定された述語に一致するこのバッファの最後のバイトのインデックスを返します。
      次で指定:
      インターフェース DataBufferlastIndexOf 
      パラメーター:
      predicate - 一致する述語
      fromIndex - 検索を開始するインデックス
      戻り値:
      predicate に一致する最後のバイトのインデックス。または、一致するものがない場合は -1 
    • readableByteCount

      public int readableByteCount()
      インターフェースからコピーされた説明: DataBuffer
      このデータバッファーから読み取ることができるバイト数を返します。
      次で指定:
      インターフェース DataBufferreadableByteCount 
      戻り値:
      読み取り可能なバイト数
    • writableByteCount

      public int writableByteCount()
      インターフェースからコピーされた説明: DataBuffer
      このデータバッファに書き込むことができるバイト数を返します。
      次で指定:
      インターフェース DataBufferwritableByteCount 
      戻り値:
      書き込み可能なバイト数
    • readPosition

      public int readPosition()
      インターフェースからコピーされた説明: DataBuffer
      このバッファが読み込む位置を返します。
      次で指定:
      インターフェース DataBufferreadPosition 
      戻り値:
      読み取り位置
    • readPosition

      public DefaultDataBuffer readPosition(int readPosition)
      インターフェースからコピーされた説明: DataBuffer
      このバッファが読み込む位置を設定します。
      次で指定:
      インターフェース DataBufferreadPosition 
      パラメーター:
      readPosition - 新しい読み取り位置
      戻り値:
      このバッファ
    • writePosition

      public int writePosition()
      インターフェースからコピーされた説明: DataBuffer
      このバッファが書き込む位置を返します。
      次で指定:
      インターフェース DataBufferwritePosition 
      戻り値:
      書き込み位置
    • writePosition

      public DefaultDataBuffer writePosition(int writePosition)
      インターフェースからコピーされた説明: DataBuffer
      このバッファが書き込む位置を設定します。
      次で指定:
      インターフェース DataBufferwritePosition 
      パラメーター:
      writePosition - 新しい書き込み位置
      戻り値:
      このバッファ
    • capacity

      public int capacity()
      インターフェースからコピーされた説明: DataBuffer
      このバッファに含めることができるバイト数を返します。
      次で指定:
      インターフェース DataBuffercapacity 
      戻り値:
      容量
    • capacity

      @DeprecatedSE public DataBuffer capacity(int capacity)
      使用すべきではありません。
      インターフェースからコピーされた説明: DataBuffer
      このバッファに含めることができるバイト数を設定します。

      新しい容量が現在の容量よりも少ない場合、このバッファの内容は切り捨てられます。新しい容量が現在の容量よりも大きい場合、拡張されます。

      次で指定:
      インターフェース DataBuffercapacity 
      パラメーター:
      capacity - 新しい容量
      戻り値:
      このバッファ
    • ensureWritable

      public DataBuffer ensureWritable(int length)
      インターフェースからコピーされた説明: DataBuffer
      現在のバッファーに、引数として指定されたデータ量を書き込むのに十分な DataBuffer.writableByteCount() があることを確認してください。そうでない場合、不足している容量がバッファに追加されます。
      次で指定:
      インターフェース DataBufferensureWritable 
      パラメーター:
      length - チェックする書き込み可能な容量
      戻り値:
      このバッファ
    • getByte

      public byte getByte(int index)
      インターフェースからコピーされた説明: DataBuffer
      このデータバッファから指定されたインデックスで 1 バイトを読み取ります。
      次で指定:
      インターフェース DataBuffergetByte 
      パラメーター:
      index - バイトが読み取られるインデックス
      戻り値:
      指定されたインデックスのバイト
    • read

      public byte read()
      インターフェースからコピーされた説明: DataBuffer
      このデータバッファーから現在の読み取り位置から 1 バイトを読み取ります。
      次で指定:
      インターフェース DataBufferread 
      戻り値:
      このバッファーの現在の読み取り位置のバイト
    • read

      public DefaultDataBuffer read(byte[] destination)
      インターフェースからコピーされた説明: DataBuffer
      このバッファの現在の読み取り位置から開始して、指定された宛先にこのバッファのデータを読み取ります。
      次で指定:
      インターフェース DataBufferread 
      パラメーター:
      destination - バイトが書き込まれる配列
      戻り値:
      このバッファ
    • read

      public DefaultDataBuffer read(byte[] destination, int offset, int length)
      インターフェースからコピーされた説明: DataBuffer
      このバッファーの現在の読み取り位置から開始して、指定された宛先にこのバッファーの最大 length バイトを読み取ります。
      次で指定:
      インターフェース DataBufferread 
      パラメーター:
      destination - バイトが書き込まれる配列
      offset - 書き込まれる最初のバイトの destination 内のインデックス
      length - destination に書き込まれる最大バイト数
      戻り値:
      このバッファ
    • write

      public DefaultDataBuffer write(byte b)
      インターフェースからコピーされた説明: DataBuffer
      このバッファの現在の書き込み位置に 1 バイトを書き込みます。
      次で指定:
      インターフェース DataBufferwrite 
      パラメーター:
      b - 書き込まれるバイト
      戻り値:
      このバッファ
    • write

      public DefaultDataBuffer write(byte[] source)
      インターフェースからコピーされた説明: DataBuffer
      このバッファの現在の書き込み位置から開始して、指定されたソースをこのバッファに書き込みます。
      次で指定:
      インターフェース DataBufferwrite 
      パラメーター:
      source - このバッファーに書き込まれるバイト
      戻り値:
      このバッファ
    • write

      public DefaultDataBuffer write(byte[] source, int offset, int length)
      インターフェースからコピーされた説明: DataBuffer
      このバッファの現在の書き込み位置から開始して、指定されたソースの最大 length バイトをこのバッファに書き込みます。
      次で指定:
      インターフェース DataBufferwrite 
      パラメーター:
      source - このバッファーに書き込まれるバイト
      offset - 書き込みを開始する source 内のインデックス
      length - source から書き込まれる最大バイト数
      戻り値:
      このバッファ
    • write

      public DefaultDataBuffer write(DataBuffer... dataBuffers)
      インターフェースからコピーされた説明: DataBuffer
      現在の書き込み位置から開始して、このバッファーに 1 つ以上の DataBuffer を書き込みます。与えられたデータバッファを解放するのは呼び出し側の責任です。
      次で指定:
      インターフェース DataBufferwrite 
      パラメーター:
      dataBuffers - このバッファーに書き込むバイトバッファー
      戻り値:
      このバッファ
    • write

      public DefaultDataBuffer write(ByteBufferSE... buffers)
      インターフェースからコピーされた説明: DataBuffer
      現在の書き込み位置から開始して、このバッファーに 1 つ以上の ByteBufferSE を書き込みます。
      次で指定:
      インターフェース DataBufferwrite 
      パラメーター:
      buffers - このバッファーに書き込むバイトバッファー
      戻り値:
      このバッファ
    • slice

      @DeprecatedSE public DefaultDataBuffer slice(int index, int length)
      使用すべきではありません。
      インターフェースからコピーされた説明: DataBuffer
      このデータバッファのコンテンツの共有サブシーケンスをコンテンツとする新しい DataBuffer を作成します。このデータバッファーと返されたバッファー間のデータは共有されます。ただし、返されたバッファーの位置の変更は、このデータバッファーの読み取りまたは書き込みの位置には反映されません。

      このメソッドは結果のスライスで DataBufferUtils.retain(DataBuffer) を呼び出さないことに注意してください。参照カウントは増加しません。

      次で指定:
      インターフェース DataBufferslice 
      パラメーター:
      index - スライスを開始するインデックス
      length - スライスの長さ
      戻り値:
      このデータバッファの指定されたスライス
    • split

      public DataBuffer split(int index)
      インターフェースからコピーされた説明: DataBuffer
      このデータバッファーを指定されたインデックスで 2 つに分割します。

      index の前のデータは新しいバッファに返されますが、このバッファには index の後に続くデータが含まれます。2 つのバッファー間のメモリは共有されますが、独立しており、重複することはありません ( slice とは異なります)。

      返されたバッファーの読み取り位置と書き込み位置は、必要に応じてバッファーの容量に収まるように切り捨てられます。このバッファーの位置は、index より小さい場合は 0 に設定されます。

      次で指定:
      インターフェース DataBuffersplit 
      パラメーター:
      index - 分割するインデックス
      戻り値:
      インデックス 0 から index までのバイトを含む新しいデータバッファ
    • asByteBuffer

      @DeprecatedSE public ByteBufferSE asByteBuffer()
      使用すべきではありません。
      インターフェースからコピーされた説明: DataBuffer
      このバッファのバイトを ByteBufferSE として公開します。この DataBuffer と返された ByteBuffer の間のデータは共有されます。ただし、返されたバッファの位置の変更は、このデータバッファの読み取りまたは書き込みの位置には反映されません。
      次で指定:
      インターフェース DataBufferasByteBuffer 
      戻り値:
      バイトバッファとしてのこのデータバッファ
    • asByteBuffer

      @DeprecatedSE public ByteBufferSE asByteBuffer(int index, int length)
      使用すべきではありません。
      インターフェースからコピーされた説明: DataBuffer
      このバッファのバイトのサブシーケンスを ByteBufferSE として公開します。この DataBuffer と返された ByteBuffer の間のデータは共有されます。ただし、返されたバッファの位置の変更は、このデータバッファの読み取りまたは書き込みの位置には反映されません。
      次で指定:
      インターフェース DataBufferasByteBuffer 
      パラメーター:
      index - バイトバッファを開始するインデックス
      length - 返されるバイトバッファーの長さ
      戻り値:
      バイトバッファとしてのこのデータバッファ
    • toByteBuffer

      @DeprecatedSE public ByteBufferSE toByteBuffer(int index, int length)
      使用すべきではありません。
      インターフェースからコピーされた説明: DataBuffer
      このバッファのバイトのサブシーケンスの ByteBufferSE 表現を返します。この DataBuffer と返された ByteBuffer の間のデータは共有されません。
      次で指定:
      インターフェース DataBuffertoByteBuffer 
      戻り値:
      バイトバッファとしてのこのデータバッファ
      関連事項:
    • toByteBuffer

      public void toByteBuffer(int srcPos, ByteBufferSE dest, int destPos, int length)
      インターフェースからコピーされた説明: DataBuffer
      指定された長さをこのデータバッファーから指定された宛先 ByteBuffer に、指定されたソース位置と宛先バイトバッファー内の指定された宛先位置からコピーします。
      次で指定:
      インターフェース DataBuffertoByteBuffer 
      パラメーター:
      srcPos - コピーを開始するこのデータバッファーの位置
      dest - 宛先バイトバッファ
      destPos - コピーを開始する dest 内の位置
      length - コピーするデータの量
    • readableByteBuffers

      public DataBuffer.ByteBufferIterator readableByteBuffers()
      インターフェースからコピーされた説明: DataBuffer
      このデータバッファー内の読み取り可能な各 ByteBufferSE に対して、クローズ可能な反復子を返します。データがコピーされないため、このメソッドを呼び出す方が DataBuffer.toByteBuffer() よりも効率的です。ただし、提供されたバイトバッファーは反復中にのみ使用できます。

      返された反復子は、try-with-resources 句で使用するか、明示的に closed にする必要があることに注意してください

      次で指定:
      インターフェース DataBufferreadableByteBuffers 
      戻り値:
      このデータバッファに含まれる読み取り可能なバイトバッファに対するクローズ可能なイテレータ
    • writableByteBuffers

      public DataBuffer.ByteBufferIterator writableByteBuffers()
      インターフェースからコピーされた説明: DataBuffer
      このデータバッファー内の書き込み可能な各 ByteBufferSE に対して、クローズ可能な反復子を返します。提供されたバイトバッファーは、反復中にのみ使用できます。

      返された反復子は、try-with-resources 句で使用するか、明示的に closed にする必要があることに注意してください

      次で指定:
      インターフェース DataBufferwritableByteBuffers 
      戻り値:
      このデータバッファに含まれる書き込み可能なバイトバッファに対するクローズ可能なイテレータ
    • toString

      public StringSE toString(int index, int length, CharsetSE charset)
      インターフェースからコピーされた説明: DataBuffer
      指定された文字セットを使用して、このバッファのデータの一部を文字列として返します。
      次で指定:
      インターフェース DataBuffertoString 
      パラメーター:
      index - 文字列を開始するインデックス
      length - 文字列に使用するバイト数
      charset - 使用する文字セット
      戻り値:
      このバッファデータの一部の文字列表現
    • equals

      public boolean equals(@Nullable ObjectSE other)
      オーバーライド:
      クラス ObjectSEequalsSE 
    • hashCode

      public int hashCode()
      オーバーライド:
      クラス ObjectSEhashCode 
    • toString

      public StringSE toString()
      オーバーライド:
      クラス ObjectSEtoString