- - PR -
DataInputStreamによるデータ入力ストリーム読込について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-10-02 12:06
現在Javaの入出力ストリームについて勉強中で,以下について悩んでおります。
------------------------------------------------------------------------------------ //OutputStreamWriter OutputStreamWriter outs = new OutputStreamWriter(response.getOutputStream(),"EUC_JP"); outs.write("hftxt=" + hftxt); //DataInputStream dis = new DataInputStream(getInputStream()); byte res = dis.readBytes(); ------------------------------------------------------------------------------------ 上記の様なソースにて,書き込んだストリームの中身をDataInputStreamにて参照したいのですが responseで書き込んだ内容を参照するにはどのようにすれば良いのでしょうか。 google等で検索したところ,FileInputStreamを用いてfileに入出力する様なサンプルはいくつか 見つけたのですが,分かりませんでした。 初歩的な質問で申し訳ありません。ご教授お願い致します。 |
|
投稿日時: 2006-10-02 13:01
いまひとつやりたいことが分からないのですが、
DataInputStreamからデータを読み込んで response.getOutputStream()で取得したOutputStreamに 書き出したいのですか? それともOutputStreamに書き出したデータを 別のOutputStreamに書き出したいという話ですか? |
|
投稿日時: 2006-10-02 13:10
分かり辛くて申し訳ありません。
OutputStreamに書き出したデータの内容を,ログに出力したいのが目的です。 -------------------------------------------------------------------- //OutputStreamWriter OutputStreamWriter outs = new OutputStreamWriter(response.getOutputStream(),"EUC_JP"); outs.write("hftxt=" + hftxt); //DataInputStream dis = new DataInputStream(getInputStream()); byte res = dis.readBytes(); system.out.plintln("res = " + res); |
|
投稿日時: 2006-10-02 13:48
Jakarta Commons IOのTeeOutputStreamが使えそうです。
branch側に記録先のストリームを指定すれば一緒に出力できます。 |
|
投稿日時: 2006-10-02 14:55
Java1.5を使われていてXMLで出力されても良いのでしたら、
標準ライブラリのXMLEncoderで、オブジェクトの文字列 表現をストリームに出力することができますよ。 http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/index.html |
|
投稿日時: 2006-10-02 15:10
なんでログを表示したいなんて思ったのだろうか。作ったプログラムがうまく動かなかったからかな。
気になった点。DataInputStream に readBytes なんてメソッドはない。仮に readByte (単数形) のことだったとしても、おそらく使用方法の誤り。DataInputStream は Java のプリミティブ型を転送するためのものなので、フツーは DataOutputStream で書き込んだものしか読めない。DataOutputStream#writeByte() したものを DataInputStream#readByte() する。この方法で読み書きされるのは Java の byte 型だが、実際のストリーム上の表現はもっと冗長になっている。 もし単純に 1バイトをストリームから取り出したいのなら、InputStream#read() を使う。 |
|
投稿日時: 2006-10-02 15:55
ご返信ありがとうございます。
結局,DataOutputStreamでwriteする中身をメソッド化して, 各write,ログ出力ロジックからそのメソッドを呼出すことになりました。 responseの中を見ることができればまた別な方法があるのですが・・ (クライアント側でDataInputStreamなら分かるが,サーバサイドで 上記処理を実行するのは無駄がある(サーバが2台あるなら別だが)) お騒がせして大変申し訳ありませんでした。。 [ メッセージ編集済み 編集者: ひろ 編集日時 2006-10-02 15:58 ] |
1