Java で InputStream を複数回読み取るにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-26 22:20:29
オリジナル
943 人が閲覧しました

How can I read an InputStream multiple times in Java?

複数の読み取りのための InputStream のコピー

データ消費の連続的な性質により、入力ストリームを 2 回読み取ると問題が発生します。ただし、Apache Commons IO ライブラリを利用すると、ストリームのコンテンツを再利用可能なソースにコピーできます。

ByteArrayOutputStream と ByteArrayInputStream を使用した解決策:

  1. IOUtils を利用する.copy を使用して、ストリームのコンテンツを ByteArrayOutputStream に転送します。
  2. ByteArrayOutputStream をストレージ用のバイト配列に変換します。

ストリームを複数回読み取るには:

// Option 1: Iteratively create `ByteArrayInputStream` objects
while (needToReadAgain) {
    ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
    yourReadMethodHere(bais);
}

// Option 2: Reset the same `ByteArrayInputStream` repeatedly
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
while (needToReadAgain) {
    bais.reset();
    yourReadMethodHere(bais);
}
ログイン後にコピー

注: このアプローチは、比較的小さなデータ ストリームに適しています。大規模なストリームまたは無限のストリームの場合は、メモリの枯渇を避けるためにストリーミング アプローチを検討してください。

以上がJava で InputStream を複数回読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!