Java では、InputStream のコンテンツを OutputStream に書き込むためのシームレスな方法が必要な場合があります。驚くべきことに、この課題に対する直接的な解決策を見つけるのは難しい場合があります。バイト バッファ コードを手動で実装することは管理可能ですが、単純に注意を逃れる、より洗練されたアプローチがあるかもしれません。
「in」という名前の InputStream と「out」という名前の OutputStream を持つシナリオを考えてみましょう。コンテンツを効果的に転送するには、次のようなコードを直感的に作成するかもしれません:
byte[] buffer = new byte[1024]; int len = in.read(buffer); while (len != -1) { out.write(buffer, 0, len); len = in.read(buffer); }
ただし、WMR が提案しているように、この機能を実現するより簡潔な方法があります。 Apache の org.apache.commons.io.IOUtils を利用すると、'copy(InputStream, OutputStream)' メソッドを利用でき、転送タスクを簡単に処理できます。
このメソッドを使用すると、コードが
InputStream in; OutputStream out; IOUtils.copy(in, out); in.close(); out.close();
面倒なバッファ管理は不要になり、たった 1 行ですべてが処理されます。そして、あなたの懸念に答えるために、このような単純なタスクに IOUtils の使用を避ける説得力のある理由はないようです。コードベースにこれを組み込むと、データ転送操作が大幅に簡素化されます。
以上がJava で InputStream コンテンツを OutputStream に効率的に転送するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。