複数の読み取りのための InputStream のコピー
データ消費の連続的な性質により、入力ストリームを 2 回読み取ると問題が発生します。ただし、Apache Commons IO ライブラリを利用すると、ストリームのコンテンツを再利用可能なソースにコピーできます。
ByteArrayOutputStream と ByteArrayInputStream を使用した解決策:
ストリームを複数回読み取るには:
// 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 サイトの他の関連記事を参照してください。