クラス DataBufferUtils
DataBuffers
を操作するためのユーティリティクラス。- 導入:
- 5.0
- 作成者:
- Arjen Poutsma, Brian Clozel
ネストされたクラスのサマリー
ネストされたクラス修飾子と型クラス説明static interface
DataBufferUtils.Matcher.match(DataBuffer)
メソッドに一度に 1 つずつ渡すことができる 1 つ以上のデータバッファーに対する区切り文字を見つける契約。コンストラクターのサマリー
コンストラクターメソッドのサマリー
修飾子と型メソッド説明static reactor.core.publisher.Mono<DataBuffer>
join
(Publisher<? extends DataBuffer> dataBuffers) 指定されたdataBuffers
要素を結合して構成される新しいDataBuffer
を返します。static reactor.core.publisher.Mono<DataBuffer>
join
(Publisher<? extends DataBuffer> buffers, int maxByteCount) バッファに指定された最大バイト数まで同じように動作するjoin(Publisher)
のバリアント。static DataBufferUtils.Matcher
matcher
(byte[] delimiter) 指定された区切り文字のDataBufferUtils.Matcher
を返します。static DataBufferUtils.Matcher
matcher
(byte[]... delimiters) 指定された区切り文字のDataBufferUtils.Matcher
を返します。static Publisher<DataBuffer>
outputStreamPublisher
(ConsumerSE<OutputStreamSE> consumer, DataBufferFactory bufferFactory, ExecutorSE executor) OutputStream
に書き込まれたバイトに基づいて、新しいPublisher<DataBuffer>
を作成します。static Publisher<DataBuffer>
outputStreamPublisher
(ConsumerSE<OutputStreamSE> consumer, DataBufferFactory bufferFactory, ExecutorSE executor, int chunkSize) パブリッシャーによって生成されるチャンクサイズを制御するoutputStreamPublisher(Consumer, DataBufferFactory, Executor)
のバリアント。static reactor.core.publisher.Flux<DataBuffer>
read
(PathSE path, DataBufferFactory bufferFactory, int bufferSize, OpenOptionSE... options) 指定されたファイルPath
からDataBuffer
のFlux
にバイトを読み取ります。static reactor.core.publisher.Flux<DataBuffer>
read
(Resource resource, long position, DataBufferFactory bufferFactory, int bufferSize) 指定されたResource
を、指定された位置からDataBuffer
のFlux
に読み込みます。static reactor.core.publisher.Flux<DataBuffer>
read
(Resource resource, DataBufferFactory bufferFactory, int bufferSize) 指定されたResource
をDataBuffer
のFlux
に読み取ります。static reactor.core.publisher.Flux<DataBuffer>
readAsynchronousFileChannel
(CallableSE<AsynchronousFileChannelSE> channelSupplier, long position, DataBufferFactory bufferFactory, int bufferSize) 指定されたサプライヤーからAsynchronousFileChannel
を取得し、指定された位置から始めて、DataBuffer
のFlux
に読み込みます。static reactor.core.publisher.Flux<DataBuffer>
readAsynchronousFileChannel
(CallableSE<AsynchronousFileChannelSE> channelSupplier, DataBufferFactory bufferFactory, int bufferSize) 指定されたサプライヤーからAsynchronousFileChannel
を取得し、DataBuffer
のFlux
に読み込みます。static reactor.core.publisher.Flux<DataBuffer>
readByteChannel
(CallableSE<ReadableByteChannelSE> channelSupplier, DataBufferFactory bufferFactory, int bufferSize) static reactor.core.publisher.Flux<DataBuffer>
readInputStream
(CallableSE<InputStreamSE> inputStreamSupplier, DataBufferFactory bufferFactory, int bufferSize) static boolean
release
(DataBuffer dataBuffer) 指定されたデータバッファーを解放します。static ConsumerSE<DataBuffer>
渡されたすべてのデータバッファでrelease(DataBuffer)
を呼び出すコンシューマーを返します。static <T extends DataBuffer>
Tretain
(T dataBuffer) PooledDataBuffer
の場合、指定されたデータバッファを保持します。static <T extends DataBuffer>
reactor.core.publisher.Flux<T>skipUntilByteCount
(Publisher<T> publisher, long maxByteCount) static <T extends DataBuffer>
InputStreamSEsubscriberInputStream
(Publisher<T> publisher, int demand) static <T extends DataBuffer>
reactor.core.publisher.Flux<T>takeUntilByteCount
(Publisher<T> publisher, long maxByteCount) static <T extends DataBuffer>
T指定されたヒントがプールされたバッファであり、リークトラッキングをサポートしている場合は、データバッファに関連付けます。static reactor.core.publisher.Flux<DataBuffer>
write
(Publisher<? extends DataBuffer> source, AsynchronousFileChannelSE channel, long position) DataBuffers
の指定されたストリームを指定されたAsynchronousFileChannel
に書き込みます。static reactor.core.publisher.Flux<DataBuffer>
write
(Publisher<DataBuffer> source, OutputStreamSE outputStream) DataBuffers
の指定されたストリームを指定されたOutputStream
に書き込みます。static reactor.core.publisher.Flux<DataBuffer>
write
(Publisher<DataBuffer> source, AsynchronousFileChannelSE channel) DataBuffers
の指定されたストリームを指定されたAsynchronousFileChannel
に書き込みます。static reactor.core.publisher.Flux<DataBuffer>
write
(Publisher<DataBuffer> source, WritableByteChannelSE channel) DataBuffers
の指定されたストリームを指定されたWritableByteChannel
に書き込みます。static reactor.core.publisher.Mono<VoidSE>
write
(Publisher<DataBuffer> source, PathSE destination, OpenOptionSE... options) 指定されたDataBuffers
のストリームを指定されたファイルPath
SE に書き込みます。
コンストラクターの詳細
DataBufferUtils
public DataBufferUtils()
メソッドの詳細
readInputStream
public static reactor.core.publisher.Flux<DataBuffer> readInputStream(CallableSE<InputStreamSE> inputStreamSupplier, DataBufferFactory bufferFactory, int bufferSize) - パラメーター:
inputStreamSupplier
- 読み取り元の入力ストリームのサプライヤーbufferFactory
- データバッファを作成するファクトリbufferSize
- データバッファの最大サイズ- 戻り値:
- 指定されたチャネルから読み取られた Flux のデータバッファ
readByteChannel
public static reactor.core.publisher.Flux<DataBuffer> readByteChannel(CallableSE<ReadableByteChannelSE> channelSupplier, DataBufferFactory bufferFactory, int bufferSize) - パラメーター:
channelSupplier
- チャンネルの読み取り元のサプライヤーbufferFactory
- データバッファを作成するファクトリbufferSize
- データバッファの最大サイズ- 戻り値:
- 指定されたチャネルから読み取られた Flux のデータバッファ
readAsynchronousFileChannel
public static reactor.core.publisher.Flux<DataBuffer> readAsynchronousFileChannel(CallableSE<AsynchronousFileChannelSE> channelSupplier, DataBufferFactory bufferFactory, int bufferSize) 指定されたサプライヤーからAsynchronousFileChannel
を取得し、それをDataBuffer
のFlux
に読み込みます。Flux が終了するとチャネルを閉じます。- パラメーター:
channelSupplier
- チャンネルの読み取り元のサプライヤーbufferFactory
- データバッファを作成するファクトリbufferSize
- データバッファの最大サイズ- 戻り値:
- 指定されたチャネルから読み取られた Flux のデータバッファ
readAsynchronousFileChannel
public static reactor.core.publisher.Flux<DataBuffer> readAsynchronousFileChannel(CallableSE<AsynchronousFileChannelSE> channelSupplier, long position, DataBufferFactory bufferFactory, int bufferSize) 指定されたサプライヤーからAsynchronousFileChannel
を取得し、指定された位置からDataBuffer
のFlux
に読み込みます。Flux が終了するとチャネルを閉じます。- パラメーター:
channelSupplier
- チャンネルの読み取り元のサプライヤーposition
- 読み取りを開始する位置bufferFactory
- データバッファを作成するファクトリbufferSize
- データバッファの最大サイズ- 戻り値:
- 指定されたチャネルから読み取られた Flux のデータバッファ
read
public static reactor.core.publisher.Flux<DataBuffer> read(PathSE path, DataBufferFactory bufferFactory, int bufferSize, OpenOptionSE... options) 指定されたファイルPath
からDataBuffer
のFlux
にバイトを読み取ります。このメソッドは、flux が終了したときにファイルが閉じられることを保証します。- パラメーター:
path
- バイトを読み取るパスbufferFactory
- データバッファを作成するファクトリbufferSize
- データバッファの最大サイズ- 戻り値:
- 指定されたチャネルから読み取られた Flux のデータバッファ
- 導入:
- 5.2
read
public static reactor.core.publisher.Flux<DataBuffer> read(Resource resource, DataBufferFactory bufferFactory, int bufferSize) 指定されたResource
をDataBuffer
のFlux
に読み取ります。リソースがファイルの場合、
AsynchronousFileChannel
に読み込まれ、readAsynchronousFileChannel(Callable, DataBufferFactory, int)
を介してFlux
に変換されるか、readByteChannel(Callable, DataBufferFactory, int)
にフォールバックします。flux が終了するとチャネルが閉じられます。- パラメーター:
resource
- 読み取るリソースbufferFactory
- データバッファを作成するファクトリbufferSize
- データバッファの最大サイズ- 戻り値:
- 指定されたチャネルから読み取られた Flux のデータバッファ
read
public static reactor.core.publisher.Flux<DataBuffer> read(Resource resource, long position, DataBufferFactory bufferFactory, int bufferSize) 指定されたResource
を、指定された位置からDataBuffer
のFlux
に読み込みます。リソースがファイルの場合、
AsynchronousFileChannel
に読み込まれ、readAsynchronousFileChannel(Callable, DataBufferFactory, int)
を介してFlux
に変換されるか、readByteChannel(Callable, DataBufferFactory, int)
にフォールバックします。flux が終了するとチャネルが閉じられます。- パラメーター:
resource
- 読み取るリソースposition
- 読み取りを開始する位置bufferFactory
- データバッファを作成するファクトリbufferSize
- データバッファの最大サイズ- 戻り値:
- 指定されたチャネルから読み取られた Flux のデータバッファ
write
public static reactor.core.publisher.Flux<DataBuffer> write(Publisher<DataBuffer> source, OutputStreamSE outputStream) 指定されたDataBuffers
のストリームを指定されたOutputStream
に書き込みます。flux が終了しても出力ストリームは閉じられず、ソース内のデータバッファーは解放されません。解放が必要な場合は、返されたFlux
にreleaseConsumer()
でサブスクライブします。返された
Flux
がサブスクライブされるまで、書き込みプロセスは開始されないことに注意してください。- パラメーター:
source
- 書き込まれるデータバッファのストリームoutputStream
- 書き込む出力ストリーム- 戻り値:
source
と同じバッファを含む Flux。サブスクライブされると書き込みプロセスを開始し、書き込みエラーと完了シグナルを発行します。
write
public static reactor.core.publisher.Flux<DataBuffer> write(Publisher<DataBuffer> source, WritableByteChannelSE channel) 指定されたDataBuffers
のストリームを指定されたWritableByteChannel
に書き込みます。flux が終了してもチャネルは閉じられず、ソース内のデータバッファーは解放されません。解放が必要な場合は、返されたFlux
にreleaseConsumer()
でサブスクライブします。返された
Flux
がサブスクライブされるまで、書き込みプロセスは開始されないことに注意してください。- パラメーター:
source
- 書き込まれるデータバッファのストリームchannel
- 書き込むチャネル- 戻り値:
source
と同じバッファを含む Flux。サブスクライブされると書き込みプロセスを開始し、書き込みエラーと完了シグナルを発行します。
write
public static reactor.core.publisher.Flux<DataBuffer> write(Publisher<DataBuffer> source, AsynchronousFileChannelSE channel) 指定されたDataBuffers
のストリームを指定されたAsynchronousFileChannel
に書き込みます。flux が終了してもチャネルは閉じられず、ソース内のデータバッファーは解放されません。解放が必要な場合は、返されたFlux
にreleaseConsumer()
でサブスクライブします。返された
Flux
がサブスクライブされるまで、書き込みプロセスは開始されないことに注意してください。- パラメーター:
source
- 書き込まれるデータバッファのストリームchannel
- 書き込むチャネル- 戻り値:
source
と同じバッファを含む Flux。サブスクライブされると書き込みプロセスを開始し、書き込みエラーと完了シグナルを発行します。- 導入:
- 5.0.10
write
public static reactor.core.publisher.Flux<DataBuffer> write(Publisher<? extends DataBuffer> source, AsynchronousFileChannelSE channel, long position) 指定されたDataBuffers
のストリームを指定されたAsynchronousFileChannel
に書き込みます。flux が終了してもチャネルは閉じられず、ソース内のデータバッファーは解放されません。解放が必要な場合は、返されたFlux
にreleaseConsumer()
でサブスクライブします。返された
Flux
がサブスクライブされるまで、書き込みプロセスは開始されないことに注意してください。- パラメーター:
source
- 書き込まれるデータバッファのストリームchannel
- 書き込むチャネルposition
- 書き込みを開始するファイルの位置。負でない必要があります- 戻り値:
source
と同じバッファを含む flux。サブスクライブされると書き込みプロセスを開始し、書き込みエラーと完了シグナルを発行します。
write
public static reactor.core.publisher.Mono<VoidSE> write(Publisher<DataBuffer> source, PathSE destination, OpenOptionSE... options) DataBuffers
の指定されたストリームを指定されたファイルPath
SE に書き込みます。オプションのoptions
パラメーターは、ファイルの作成方法またはオープン方法を指定します(デフォルトはCREATE
SE、TRUNCATE_EXISTING
SE、WRITE
SE)。- パラメーター:
source
- 書き込まれるデータバッファのストリームdestination
- ファイルへのパスoptions
- ファイルを開く方法を指定するオプション- 戻り値:
- 完了またはエラーを示す
Mono
- 導入:
- 5.2
outputStreamPublisher
public static Publisher<DataBuffer> outputStreamPublisher(ConsumerSE<OutputStreamSE> consumer, DataBufferFactory bufferFactory, ExecutorSE executor) OutputStream
に書き込まれたバイトに基づいて、新しいPublisher<DataBuffer>
を作成します。- パラメーター
outputStreamConsumer
は、最初の項目がリクエストされたときに、返されたPublisher
のサブスクリプションごとに 1 回呼び出されます。 outputStreamConsumer
によって行われたOutputStream.write()
SE 呼び出しは、デフォルトのチャンクサイズ 1024 を超えるまで、またはストリームがフラッシュされるまでバッファーされ、リクエストがある場合はアイテムが公開されます。- 要求がない場合、
OutputStream.write()
は要求があるまでブロックします。 - サブスクリプションがキャンセルされた場合、
OutputStream.write()
はIOException
をスローします。 outputStreamHandler
が完了すると、サブスクリプションが完了します。outputStreamHandler
からスローされた例外はすべて、サブスクライバーにディスパッチされます。
- パラメーター:
consumer
- 最初のバッファがリクエストされたときに呼び出されますexecutor
-outputStreamHandler
を呼び出すために使用されます- 戻り値:
outputStreamHandler
によって書き込まれたバイトに基づくPublisher<DataBuffer>
- 導入:
- 6.1
- パラメーター
outputStreamPublisher
public static Publisher<DataBuffer> outputStreamPublisher(ConsumerSE<OutputStreamSE> consumer, DataBufferFactory bufferFactory, ExecutorSE executor, int chunkSize) パブリッシャーによって生成されるチャンクサイズを制御するoutputStreamPublisher(Consumer, DataBufferFactory, Executor)
のバリアント。- 導入:
- 6.1
subscriberInputStream
public static <T extends DataBuffer> InputStreamSE subscriberInputStream(Publisher<T> publisher, int demand) 指定されたDataBuffer
のPublisher
をサブスクライブし、バイトコンテンツを消費するためのInputStream
SE を返します。バイトバッファはキューに格納されます。
demand
コンストラクター値によって、最初にリクエストされるバッファの数が決まります。ストレージが(demand - (demand >> 2))
制限を下回ると、キューを補充するリクエストが行われます。InputStream
は onError または onComplete シグナルの後に終了し、保存されたバッファが読み取られます。InputStream
が閉じられると、Flow.Subscription
SE はキャンセルされ、保存されたバッファが解放されます。- パラメーター:
publisher
-DataBuffer
のソースdemand
- 最初にリクエストするバッファの数と、継続的に内部的にバッファリングするバッファの数。- 戻り値:
Publisher
によるInputStream
SE
takeUntilByteCount
public static <T extends DataBuffer> reactor.core.publisher.Flux<T> takeUntilByteCount(Publisher<T> publisher, long maxByteCount) - パラメーター:
publisher
- フィルタリングするパブリッシャーmaxByteCount
- 最大バイト数- 戻り値:
- 最大バイト数が
maxByteCount
である flux
skipUntilByteCount
public static <T extends DataBuffer> reactor.core.publisher.Flux<T> skipUntilByteCount(Publisher<T> publisher, long maxByteCount) - パラメーター:
publisher
- フィルタリングするパブリッシャーmaxByteCount
- 最大バイト数- 戻り値:
- 指定された発行者の残りの部分を含む flux
retain
PooledDataBuffer
の場合、指定されたデータバッファを保持します。- パラメーター:
dataBuffer
- 保持するデータバッファ- 戻り値:
- 保存バッファ
touch
指定されたヒントがプールされたバッファであり、リークトラッキングをサポートしている場合は、データバッファに関連付けます。- パラメーター:
dataBuffer
- ヒントを添付するデータバッファhint
- 添付するヒント- 戻り値:
- 入力バッファ
- 導入:
- 5.3.2
release
指定されたデータバッファーを解放します。それがPooledDataBuffer
であり、割り当てられている場合、このメソッドはPooledDataBuffer.release()
を呼び出します。CloseableDataBuffer
の場合、このメソッドはCloseableDataBuffer.close()
を呼び出します。- パラメーター:
dataBuffer
- 解放するデータバッファ- 戻り値:
- バッファが解放された場合は
true
。それ以外の場合はfalse
。
releaseConsumer
渡されたすべてのデータバッファでrelease(DataBuffer)
を呼び出すコンシューマーを返します。join
public static reactor.core.publisher.Mono<DataBuffer> join(Publisher<? extends DataBuffer> dataBuffers) 指定されたdataBuffers
要素を結合して構成される新しいDataBuffer
を返します。DataBuffer
型に応じて、返されるバッファーは、提供されたバッファーのすべてのデータを含む単一のバッファーである場合もあれば、指定されたバッファーへの参照を含むゼロコピーの複合である場合もあります。dataBuffers
でエラーが発生した場合、またはキャンセルシグナルが発生した場合は、蓄積されたすべてのバッファが解放されます。指定されたデータバッファを解放する必要がないことに注意してください。それらは、返却されたコンポジットの一部としてリリースされます。
- パラメーター:
dataBuffers
- 構成されるデータバッファ- 戻り値:
dataBuffers
引数で構成されるバッファー- 導入:
- 5.0.3
join
public static reactor.core.publisher.Mono<DataBuffer> join(Publisher<? extends DataBuffer> buffers, int maxByteCount) バッファリングする指定された最大バイト数まで同じように動作するjoin(Publisher)
のバリアント。制限を超えると、DataBufferLimitException
が発生します。- パラメーター:
buffers
- 構成されるデータバッファmaxByteCount
- バッファリングする最大バイト数、または無制限の場合は -1- 戻り値:
- 集約されたコンテンツを含むバッファ。バッファする最大バイト数を超える場合は空の Mono。
- 例外:
DataBufferLimitException
- maxByteCount を超えた場合- 導入:
- 5.1.11
matcher
指定された区切り文字のDataBufferUtils.Matcher
を返します。マッチャーは、データバッファーのストリーム内の区切り文字を見つけるために使用できます。- パラメーター:
delimiter
- 検索する区切り文字バイト- 戻り値:
- マッチャー
- 導入:
- 5.2
matcher
指定された区切り文字のDataBufferUtils.Matcher
を返します。マッチャーは、データバッファーのストリーム内の区切り文字を見つけるために使用できます。- パラメーター:
delimiters
- 検索する区切り文字バイト- 戻り値:
- マッチャー
- 導入:
- 5.2