0
私はExcelファイルを生成するクラスが必要です。クラスは出力ストリームを取り、FileOutputWriter
を対象としています。 しかし、後でファイルをS3にアップロードする必要があるため、ファイルに保存することは不要です。 ファイルをS3にアップロードするには、それを入力ストリームとして必要とします。OutputStreamへのInputStream
私は、出力ストリームを入力ストリームに変換する方法や、入力ストリームにデータを転送する方法を探していました。
PipedOutputStream
を使用したとき、私はFileOutputStream
それが正常に動作し、ファイルを書き込みますを使用して、永遠にxlsFile.write(outstr);
だけブロックをPipeOutputStream
を試してみましたが、しています。
PipedInputStream inputStream = new PipedInputStream();
try (OutputStream outstr = new PipedOutputStream(inputStream)) {
xlsFile.write(outstr);
outstr.flush();
return inputStream;
}
これは1つのスレッドで実行しているためです。 –
ここで提供されているソリューションを使用できると思います。http://stackoverflow.com/questions/43157/easy-way-to-write-contents-of-a-java-inputstream-to-an-outputstream –
'PipedInputStream' /' PipedOutputStream'は別のスレッドで処理されています。それらを単一のスレッドで処理すると、そのスレッド自体がブロックされます。 http://stackoverflow.com/a/23874232/166589 –