金曜日, 10月 03, 2008

【本日の嵌り】 OutputStreamをInputStreamに変換する このエントリーを含むはてなブックマーク


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 件のコメント:

 
© 2006-2015 Virtual Technology
当サイトではGoogle Analyticsを使ってウェブサイトのトラフィック情報を収集しています。詳しくは、プライバシーポリシーを参照してください。