• 締切済み

OutputStreamの内容を確認するには?

Javaサーブレットでバイナリデータを出力したいと思っています。 デバッグのために出力した内容を、ログに出力したいのですが バッファのデータを取得する方法が見つかりません。 ●現在のソース(抜粋) ---------------------- ServletOutputStream out = response.getOutputStream(); BufferedOutputStream outbuf = new BufferedOutputStream(out); DataOutputStream outdata = new DataOutputStream(outbuf); outdata.writeLong(longValue); outdata.writeInt(intValue); outdata.writeShort(shortValue); outdata.flash(); ---------------------- 一番上が ServletOutputStream out = response.getOutputStream(); ではなく ByteArrayOutputStream out = new ByteArrayOutputStream(); であれば、toByteArray() などで問題なく内容を取得できそう なのですが、それではクライアントに出力できなくなってしまいます。 何かよい方法がありましたら教えていただけないでしょうか?

みんなの回答

noname#80901
noname#80901
回答No.1

外部APIを使うことになりますが、参考URLのようなクラスを使えば実現できそうです。

参考URL:
http://people.apache.org/~jochen/commons-io/site/apidocs/org/apache/commons/io/output/TeeOutputStream.html
SuggieQQ
質問者

お礼

ありがとうございます。 このクラスを使うと、下記のようにして、 2つのOutputStreamをまとめることができそうですね。 ServletOutputStream out; ByteArrayOutputStream branch; TeeOutputStream(out, branch); 時間のあるときに試してみたいと思います。 結果が分かったら報告します。

関連するQ&A

専門家に質問してみよう