質問

がより簡潔なダム(例えば、JDK法)のための"配管"の入力出力Java以外は次のうちどれでしょう?

public void pipe(Reader in, Writer out) {
    CharBuffer buf = CharBuffer.allocate(DEFAULT_BUFFER_SIZE);
    while( in.read(buf) >= 0 ) {
      out.append(buf.flip());
      buf.clear();
    }
}

[編集]にご注意ください ReaderWriterされ.正しい応答を発揮しますか inout 形パイプ(好ましくない以上1または2の方法します。私はお受け答えが inoutInputStreamOutputStream (好ましくは転換から Reader/Writer).私はお受けしておりません回答から in または outサブクラスReader/InputStream または Writer/OutputStrem.

役に立ちましたか?

解決

IOUtils the Apache Commonsプロジェクトの utilily方法 というあります。

IOUtils.copy(in, out) を行うバッファリングされたコピーのすべての入力に出力します。場合がありスポットにコードベースを必要とする Stream または Reader/Writer 取り扱い、IOUtilsできる良い方法がありました。

他のヒント

java.io.PipedInputStreamPipedOutputStream, や PipedReader/PipedWriter 同パッケージです。

からの文書のPipedInputStream:

パイプによる入力ストリームに接続パイプによる出力ストリームパイプによる入力ストリームデータバイトを提供している記述のパイプによる出力ストリームです。通常、データの読み込みからPipedInputStreamオブジェクトによるスレッドとデータの書き込みに対応するPipedOutputStreamによるその他のねじになります。を使用しようとしているオブジェクトからのシングルスレッドは推奨されませんが行き詰まりのねじになります。パイプによる入力ストリームを含むバッファにデカップリング読み込み操作からを書き、業務の範囲内です。パイプといわれて壊れた場合、スレッドが提供するようになったデータバイトをパイプで連結された接続済みの出力ストリームがなくなります。

の最適化をご利用の際にはよFileChannelsのNIO API: を読み込み, 書き込みます.のJVMを最適化できるこの電話でのデータファイルから目的地にチャンネルならず、データをカーネル空間です。見 この記事 ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top