OutputStreamからInputStreamに変換するにはどうしたらいいか。Pipeを使ってもOutputStreamと互換性がないので簡単にはいかない。さあ、どうしよう。
まず、ByteArrayOutputStream(baos)からByteArrayOutputStream(bais)への変換であれば以下のようにすればできる。
// baosの生成
ByteArrayOutputStream baos = new ByteArrayOutputStream();
// baosへの書込
baos.write(・・・);
・・・
// baosのからbaisへの変換
bais = new ByteArrayInputStream(baos.toByteArray());
なので、OutputStreamからByteArrayOutputStreamを取り出せれば何とかなりそうである。
それは以下のようにすればよい。
//追加コード
public void hoge(OutputStream out){
ByteArrayOutputStream temp = new ByteArrayOutputStream();
hogeByteArray(temp);
// byteArrayをoutする
out.write(temp.toByteArray());
}
// 既存のコード
public void hogeByteArray(ByteArrayOutputStream bOut){
// <既存のものと同じ内容>
}
これで解決。
0 件のコメント:
コメントを投稿