public interface DataBuffer
DataBuffer
は、ByteBuffer
の単一の位置SEとは対照的に、別個の読み取り位置と書き込み位置を持っています。そのため、DataBuffer
は、書き込み後に読み取るためにフリップを必要SEとしません。一般に、読み取り位置と書き込み位置、および容量については、次の不変条件が当てはまります。
0 <= readPosition <= writePosition <= 容量
DataBuffer
の容量は、StringBuilder
と同様にオンデマンドで拡張されます。
DataBuffer
抽象化の主な目的は、Netty の ByteBuf
に似ていますが、非 Netty プラットフォーム(つまり、サーブレットコンテナー)でも使用できる ByteBuffer
SE の便利なラッパーを提供することです。
DataBufferFactory
修飾子と型 | メソッドと説明 |
---|---|
ByteBufferSE | asByteBuffer() このバッファのバイトを ByteBuffer SE として公開します。 |
ByteBufferSE | asByteBuffer(int index, int length) このバッファのバイトのサブシーケンスを ByteBuffer SE として公開します。 |
InputStreamSE | asInputStream() このバッファのデータを InputStream SE として公開します。 |
InputStreamSE | asInputStream(boolean releaseOnClose) このバッファのデータを InputStream SE として公開します。 |
OutputStreamSE | asOutputStream() このバッファのデータを OutputStream SE として公開します。 |
int | capacity() このバッファに含めることができるバイト数を返します。 |
DataBuffer | capacity(int capacity) このバッファに含めることができるバイト数を設定します。 |
default DataBuffer | ensureCapacity(int capacity) 現在のバッファーに、引数として指定されたデータ量を書き込むのに十分な writableByteCount() があることを確認してください。 |
DataBufferFactory | factory() このバッファーを作成した DataBufferFactory を返します。 |
byte | getByte(int index) このデータバッファから指定されたインデックスで 1 バイトを読み取ります。 |
int | indexOf(IntPredicateSE predicate, int fromIndex) 指定された述語に一致するこのバッファーの最初のバイトのインデックスを返します。 |
int | lastIndexOf(IntPredicateSE predicate, int fromIndex) 指定された述語に一致するこのバッファの最後のバイトのインデックスを返します。 |
byte | read() このデータバッファーから現在の読み取り位置から 1 バイトを読み取ります。 |
DataBuffer | read(byte[] destination) このバッファの現在の読み取り位置から開始して、指定された宛先にこのバッファのデータを読み取ります。 |
DataBuffer | read(byte[] destination, int offset, int length) このバッファーの現在の読み取り位置から開始して、指定された宛先にこのバッファーの最大 length バイトを読み取ります。 |
int | readableByteCount() このデータバッファーから読み取ることができるバイト数を返します。 |
int | readPosition() このバッファが読み込む位置を返します。 |
DataBuffer | readPosition(int readPosition) このバッファが読み込む位置を設定します。 |
default DataBuffer | retainedSlice(int index, int length) コンテンツがこのデータバッファのコンテンツの共有され、保持されたサブシーケンスである新しい DataBuffer を作成します。 |
DataBuffer | slice(int index, int length) コンテンツがこのデータバッファのコンテンツの共有サブシーケンスである新しい DataBuffer を作成します。 |
default StringSE | toString(CharsetSE charset) 指定された文字セットを使用して、このバッファのデータを文字列で返します。 |
StringSE | toString(int index, int length, CharsetSE charset) 指定された文字セットを使用して、このバッファのデータの一部を文字列として返します。 |
int | writableByteCount() このデータバッファに書き込むことができるバイト数を返します。 |
DataBuffer | write(byte b) このバッファの現在の書き込み位置に 1 バイトを書き込みます。 |
DataBuffer | write(byte[] source) このバッファの現在の書き込み位置から開始して、指定されたソースをこのバッファに書き込みます。 |
DataBuffer | write(byte[] source, int offset, int length) このバッファの現在の書き込み位置から開始して、指定されたソースの最大 length バイトをこのバッファに書き込みます。 |
DataBuffer | write(ByteBufferSE... buffers) 現在の書き込み位置から開始して、このバッファーに 1 つ以上の ByteBuffer SE を書き込みます。 |
default DataBuffer | write(CharSequenceSE charSequence, CharsetSE charset) 現在の書き込み位置から、指定された Charset を使用して、指定された CharSequence を書き込みます。 |
DataBuffer | write(DataBuffer... buffers) 現在の書き込み位置から開始して、このバッファーに 1 つ以上の DataBuffer を書き込みます。 |
int | writePosition() このバッファが書き込む位置を返します。 |
DataBuffer | writePosition(int writePosition) このバッファが書き込む位置を設定します。 |
DataBufferFactory factory()
DataBufferFactory
を返します。int indexOf(IntPredicateSE predicate, int fromIndex)
predicate
- 一致する述語 fromIndex
- 検索を開始するインデックス predicate
に一致する最初のバイトのインデックス。または、一致するものがない場合は -1
int lastIndexOf(IntPredicateSE predicate, int fromIndex)
predicate
- 一致する述語 fromIndex
- 検索を開始するインデックス predicate
に一致する最後のバイトのインデックス。または、一致するものがない場合は -1
int readableByteCount()
int writableByteCount()
int capacity()
DataBuffer capacity(int capacity)
新しい容量が現在の容量よりも少ない場合、このバッファの内容は切り捨てられます。新しい容量が現在の容量よりも大きい場合、拡張されます。
capacity
- 新しい容量 default DataBuffer ensureCapacity(int capacity)
writableByteCount()
があることを確認してください。そうでない場合、不足している容量がバッファに追加されます。capacity
- チェックする書き込み可能な容量 int readPosition()
DataBuffer readPosition(int readPosition)
readPosition
- 新しい読み取り位置 IndexOutOfBoundsExceptionSE
- readPosition
が 0 より小さいか、writePosition()
より大きい場合 int writePosition()
DataBuffer writePosition(int writePosition)
writePosition
- 新しい書き込み位置 IndexOutOfBoundsExceptionSE
- writePosition
が readPosition()
より小さいか、capacity()
より大きい場合 byte getByte(int index)
index
- バイトが読み取られるインデックス IndexOutOfBoundsExceptionSE
- index
が範囲外の場合 byte read()
DataBuffer read(byte[] destination)
destination
- バイトが書き込まれる配列 DataBuffer read(byte[] destination, int offset, int length)
length
バイトを読み取ります。destination
- バイトが書き込まれる配列 offset
- 書き込まれる最初のバイトの destination
内のインデックス length
- destination
に書き込まれる最大バイト数 DataBuffer write(byte b)
b
- 書き込まれるバイト DataBuffer write(byte[] source)
source
- このバッファーに書き込まれるバイト DataBuffer write(byte[] source, int offset, int length)
length
バイトをこのバッファに書き込みます。source
- このバッファーに書き込まれるバイト offset
- 書き込みを開始する source
内のインデックス length
- source
から書き込まれる最大バイト数 DataBuffer write(DataBuffer... buffers)
DataBuffer
を書き込みます。与えられたデータバッファを解放するのは呼び出し側の責任です。buffers
- このバッファーに書き込むバイトバッファー DataBuffer write(ByteBufferSE... buffers)
ByteBuffer
SE を書き込みます。buffers
- このバッファーに書き込むバイトバッファー default DataBuffer write(CharSequenceSE charSequence, CharsetSE charset)
Charset
を使用して、指定された CharSequence
を書き込みます。charSequence
- このバッファーに書き込む文字シーケンス charset
- 文字シーケンスをエンコードする文字セット DataBuffer slice(int index, int length)
DataBuffer
を作成します。このデータバッファーと返されたバッファー間のデータは共有されます。ただし、返されたバッファーの位置の変更は、このデータバッファーの読み取りまたは書き込みの位置には反映されません。 このメソッドは結果のスライスで DataBufferUtils.retain(DataBuffer)
を呼び出さないことに注意してください。参照カウントは増加しません。
index
- スライスを開始するインデックス length
- スライスの長さ default DataBuffer retainedSlice(int index, int length)
DataBuffer
を作成します。このデータバッファーと返されたバッファー間のデータは共有されます。ただし、返されたバッファーの位置の変更は、このデータバッファーの読み取りまたは書き込みの位置には反映されません。slice(int, int)
とは異なり、このメソッド は結果のスライスで DataBufferUtils.retain(DataBuffer)
(または同等のもの) を 呼び出すことに注意してください。
index
- スライスを開始するインデックス length
- スライスの長さ ByteBufferSE asByteBuffer()
ByteBuffer
SE として公開します。この DataBuffer
と返された ByteBuffer
の間のデータは共有されます。ただし、返されたバッファの位置SEの変更は、このデータバッファの読み取りまたは書き込みの位置には反映されません。ByteBufferSE asByteBuffer(int index, int length)
ByteBuffer
SE として公開します。この DataBuffer
と返された ByteBuffer
の間のデータは共有されます。ただし、返されたバッファの位置SEの変更は、このデータバッファの読み取りまたは書き込みの位置には反映されません。index
- バイトバッファを開始するインデックス length
- 返されるバイトバッファーの長さ InputStreamSE asInputStream()
InputStream
SE として公開します。データと読み取り位置の両方が、返されたストリームとこのデータバッファの間で共有されます。入力ストリームが閉じSEられると、基になるバッファは解放されません。asInputStream(boolean)
InputStreamSE asInputStream(boolean releaseOnClose)
InputStream
SE として公開します。データと読み取り位置の両方が、返されたストリームとこのデータバッファーの間で共有されます。OutputStreamSE asOutputStream()
OutputStream
SE として公開します。データと書き込み位置の両方が、返されたストリームとこのデータバッファーの間で共有されます。default StringSE toString(CharsetSE charset)
toString(readPosition(), readableByteCount(), charset)
に委譲します。charset
- 使用する文字セット