クラス DataBufferUtils

java.lang.ObjectSE
org.springframework.core.io.buffer.DataBufferUtils

public abstract class DataBufferUtils extends ObjectSE
DataBuffers を操作するためのユーティリティクラス。
導入:
5.0
作成者:
Arjen Poutsma, Brian Clozel
  • コンストラクターの詳細

    • DataBufferUtils

      public DataBufferUtils()
  • メソッドの詳細

    • readInputStream

      public static reactor.core.publisher.Flux<DataBuffer> readInputStream(CallableSE<InputStreamSE> inputStreamSupplier, DataBufferFactory bufferFactory, int bufferSize)
      指定されたサプライヤーから InputStreamSE を入手し、それを DataBuffer の Flux に読み込みます。フラックスが終了すると、入力ストリームを閉じます。
      パラメーター:
      inputStreamSupplier - 読み取り元の入力ストリームのサプライヤー
      bufferFactory - データバッファを作成するファクトリ
      bufferSize - データバッファの最大サイズ
      戻り値:
      指定されたチャネルから読み取られたデータバッファーの束
    • readByteChannel

      public static reactor.core.publisher.Flux<DataBuffer> readByteChannel(CallableSE<ReadableByteChannelSE> channelSupplier, DataBufferFactory bufferFactory, int bufferSize)
      指定されたサプライヤーから ReadableByteChannelSE を取得し、DataBuffer の Flux に読み込みます。Flux が終了したときにチャネルを閉じます。
      パラメーター:
      channelSupplier - チャンネルの読み取り元のサプライヤー
      bufferFactory - データバッファを作成するファクトリ
      bufferSize - データバッファの最大サイズ
      戻り値:
      指定されたチャネルから読み取られたデータバッファーの束
    • readAsynchronousFileChannel

      public static reactor.core.publisher.Flux<DataBuffer> readAsynchronousFileChannel(CallableSE<AsynchronousFileChannelSE> channelSupplier, DataBufferFactory bufferFactory, int bufferSize)
      指定されたサプライヤーから AsynchronousFileChannel を取得し、それを DataBuffer の Flux に読み取ります。Flux が終了したときにチャネルを閉じます。
      パラメーター:
      channelSupplier - チャンネルの読み取り元のサプライヤー
      bufferFactory - データバッファを作成するファクトリ
      bufferSize - データバッファの最大サイズ
      戻り値:
      指定されたチャネルから読み取られたデータバッファーの束
    • readAsynchronousFileChannel

      public static reactor.core.publisher.Flux<DataBuffer> readAsynchronousFileChannel(CallableSE<AsynchronousFileChannelSE> channelSupplier, long position, DataBufferFactory bufferFactory, int bufferSize)
      指定されたサプライヤーから AsynchronousFileChannel を取得し、指定された位置から始めて、DataBuffer の Flux に読み込みます。フラックスが終了するとチャンネルを閉じます。
      パラメーター:
      channelSupplier - チャンネルの読み取り元のサプライヤー
      position - 読み取りを開始する位置
      bufferFactory - データバッファを作成するファクトリ
      bufferSize - データバッファの最大サイズ
      戻り値:
      指定されたチャネルから読み取られたデータバッファーの束
    • read

      public static reactor.core.publisher.Flux<DataBuffer> read(PathSE path, DataBufferFactory bufferFactory, int bufferSize, OpenOptionSE... options)
      指定されたファイル Path から DataBuffer の Flux にバイトを読み取ります。このメソッドは、フラックスが終了したときにファイルが閉じられることを保証します。
      パラメーター:
      path - バイトを読み取るパス
      bufferFactory - データバッファを作成するファクトリ
      bufferSize - データバッファの最大サイズ
      戻り値:
      指定されたチャネルから読み取られたデータバッファーの束
      導入:
      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) にフォールバックします。フラックスが終了したときにチャネルを閉じます。

      パラメーター:
      resource - 読み取るリソース
      bufferFactory - データバッファを作成するファクトリ
      bufferSize - データバッファの最大サイズ
      戻り値:
      指定されたチャネルから読み取られたデータバッファーの束
    • 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) にフォールバックします。フラックスが終了したときにチャネルを閉じます。

      パラメーター:
      resource - 読み取るリソース
      position - 読み取りを開始する位置
      bufferFactory - データバッファを作成するファクトリ
      bufferSize - データバッファの最大サイズ
      戻り値:
      指定されたチャネルから読み取られたデータバッファーの束
    • write

      public static reactor.core.publisher.Flux<DataBuffer> write(Publisher<DataBuffer> source, OutputStreamSE outputStream)
      DataBuffers の指定されたストリームを指定された OutputStream に書き込みます。flux が終了したときに出力ストリームを閉じないし、ソースのデータバッファを解放しません。リリースが必要な場合は、返された Flux を releaseConsumer() で subscribe します。

      返された Flux がサブスクライブされるまで、書き込みプロセスは開始されないことに注意してください。

      パラメーター:
      source - 書き込まれるデータバッファのストリーム
      outputStream - 書き込む出力ストリーム
      戻り値:
      source と同じバッファーを含む Flux。サブスクライブ時に書き込みプロセスを開始し、書き込みエラーと完了信号を発行します
    • write

      public static reactor.core.publisher.Flux<DataBuffer> write(Publisher<DataBuffer> source, WritableByteChannelSE channel)
      DataBuffers の指定されたストリームを指定された WritableByteChannel に書き込みます。flux が終了したときにチャネルを閉じないし、ソースのデータバッファを解放しません。リリースが必要な場合は、返された Flux を releaseConsumer() で subscribe します。

      返された Flux がサブスクライブされるまで、書き込みプロセスは開始されないことに注意してください。

      パラメーター:
      source - 書き込まれるデータバッファのストリーム
      channel - 書き込むチャネル
      戻り値:
      source と同じバッファーを含む Flux。サブスクライブ時に書き込みプロセスを開始し、書き込みエラーと完了信号を発行します
    • write

      public static reactor.core.publisher.Flux<DataBuffer> write(Publisher<DataBuffer> source, AsynchronousFileChannelSE channel)
      DataBuffers の指定されたストリームを指定された AsynchronousFileChannel に書き込みます。flux が終了したときにチャネルを閉じないし、ソースのデータバッファを解放しません。リリースが必要な場合は、返された Flux を releaseConsumer() で subscribe します。

      返された 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() で subscribe します。

      返された Flux がサブスクライブされるまで、書き込みプロセスは開始されないことに注意してください。

      パラメーター:
      source - 書き込まれるデータバッファのストリーム
      channel - 書き込むチャネル
      position - 書き込みを開始するファイルの位置。負でない必要があります
      戻り値:
      source と同じバッファーを含むフラックス。サブスクライブ時に書き込みプロセスを開始し、書き込みエラーと完了信号を発行します
    • write

      public static reactor.core.publisher.Mono<VoidSE> write(Publisher<DataBuffer> source, PathSE destination, OpenOptionSE... options)
      DataBuffers の指定されたストリームを指定されたファイル PathSE に書き込みます。オプションの options パラメーターは、ファイルの作成方法またはオープン方法を指定します(デフォルトは CREATESETRUNCATE_EXISTINGSEWRITESE)。
      パラメーター:
      source - 書き込まれるデータバッファのストリーム
      destination - ファイルへのパス
      options - ファイルを開く方法を指定するオプション
      戻り値:
      完了またはエラーを示す Mono 
      導入:
      5.2
    • outputStreamPublisher

      public static Publisher<DataBuffer> outputStreamPublisher(ConsumerSE<OutputStreamSE> outputStreamConsumer, DataBufferFactory bufferFactory, ExecutorSE executor)
      OutputStream に書き込まれたバイトに基づいて、新しい Publisher<DataBuffer> を作成します。
      • パラメーター outputStreamConsumer は、最初の項目がリクエストされたときに、返された Publisher のサブスクリプションごとに 1 回呼び出されます。
      • outputStreamConsumer によって行われた OutputStream.write()SE 呼び出しは、デフォルトのチャンクサイズ 1024 を超えるまで、またはストリームがフラッシュされるまでバッファーされ、リクエストがある場合はアイテムが公開されます。
      • 要求がない場合、OutputStream.write() は要求があるまでブロックします。
      • サブスクリプションがキャンセルされた場合、OutputStream.write() は IOException をスローします。
      • outputStreamHandler が完了すると、サブスクリプションが完了します
      • outputStreamHandler からスローされた例外はすべて、サブスクライバーにディスパッチされます。
      パラメーター:
      outputStreamConsumer - 最初のバッファがリクエストされたときに呼び出されます
      executor - outputStreamHandler を呼び出すために使用されます
      戻り値:
      outputStreamHandler によって書き込まれたバイトに基づく Publisher<DataBuffer> 
      導入:
      6.1
    • outputStreamPublisher

      public static Publisher<DataBuffer> outputStreamPublisher(ConsumerSE<OutputStreamSE> outputStreamConsumer, DataBufferFactory bufferFactory, ExecutorSE executor, int chunkSize)
      OutputStream に書き込まれたバイトに基づいて、新しい Publisher<DataBuffer> を作成します。
      • パラメーター outputStreamConsumer は、最初の項目がリクエストされたときに、返された Publisher のサブスクリプションごとに 1 回呼び出されます。
      • outputStreamHandler によって行われた OutputStream.write()SE 呼び出しは、chunkSize に達するかそれを超えるまで、またはストリームがフラッシュされるまでバッファーされ、その後、リクエストがあれば公開アイテムが生成されます。
      • 要求がない場合、OutputStream.write() は要求があるまでブロックします。
      • サブスクリプションがキャンセルされた場合、OutputStream.write() は IOException をスローします。
      • outputStreamHandler が完了すると、サブスクリプションが完了します
      • outputStreamHandler からスローされた例外はすべて、サブスクライバーにディスパッチされます。
      パラメーター:
      outputStreamConsumer - 最初のバッファがリクエストされたときに呼び出されます
      executor - outputStreamHandler を呼び出すために使用されます
      chunkSize - パブリッシャーによって生成されるバッファの最小サイズ
      戻り値:
      outputStreamHandler によって書き込まれたバイトに基づく Publisher<DataBuffer> 
      導入:
      6.1
    • takeUntilByteCount

      public static <T extends DataBuffer> reactor.core.publisher.Flux<T> takeUntilByteCount(Publisher<T> publisher, long maxByteCount)
      合計バイト数が指定された最大バイト数に達するまで、またはパブリッシャーが完了するまで、指定された Publisher からバッファーをリレーします。
      パラメーター:
      publisher - フィルタリングするパブリッシャー
      maxByteCount - 最大バイト数
      戻り値:
      最大バイト数が maxByteCount であるフラックス
    • skipUntilByteCount

      public static <T extends DataBuffer> reactor.core.publisher.Flux<T> skipUntilByteCount(Publisher<T> publisher, long maxByteCount)
      合計バイト数が指定された最大バイト数に達するまで、またはパブリッシャーが完了するまで、指定された Publisher からバッファーをスキップします。
      パラメーター:
      publisher - フィルタリングするパブリッシャー
      maxByteCount - 最大バイト数
      戻り値:
      指定された発行者の残りの部分との変化
    • retain

      public static <T extends DataBuffer> T retain(T dataBuffer)
      PooledDataBuffer の場合、指定されたデータバッファを保持します。
      パラメーター:
      dataBuffer - 保持するデータバッファ
      戻り値:
      保存バッファ
    • touch

      public static <T extends DataBuffer> T touch(T dataBuffer, ObjectSE hint)
      指定されたヒントがプールされたバッファであり、リークトラッキングをサポートしている場合は、データバッファに関連付けます。
      パラメーター:
      dataBuffer - ヒントを添付するデータバッファ
      hint - 添付するヒント
      戻り値:
      入力バッファ
      導入:
      5.3.2
    • release

      public static boolean release(@Nullable DataBuffer dataBuffer)
      指定されたデータバッファーを解放します。それが PooledDataBuffer であり、割り当てられている場合、このメソッドは PooledDataBuffer.release() を呼び出します。CloseableDataBuffer の場合、このメソッドは CloseableDataBuffer.close() を呼び出します。
      パラメーター:
      dataBuffer - 解放するデータバッファ
      戻り値:
      バッファが解放された場合は true。それ以外の場合は false
    • releaseConsumer

      public static ConsumerSE<DataBuffer> 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

      public static DataBufferUtils.Matcher matcher(byte[] delimiter)
      指定された区切り文字の DataBufferUtils.Matcher を返します。マッチャーは、データバッファーのストリーム内の区切り文字を見つけるために使用できます。
      パラメーター:
      delimiter - 検索する区切り文字バイト
      戻り値:
      マッチャー
      導入:
      5.2
    • matcher

      public static DataBufferUtils.Matcher matcher(byte[]... delimiters)
      指定された区切り文字の DataBufferUtils.Matcher を返します。マッチャーは、データバッファーのストリーム内の区切り文字を見つけるために使用できます。
      パラメーター:
      delimiters - 検索する区切り文字バイト
      戻り値:
      マッチャー
      導入:
      5.2