- - PR -
HttpServletResponseへbyte出力
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-03-27 16:35
ノムラと申します。宜しくお願いします。
現在、HttpServletResponseへ1byte数値を出力しようとしているのですが、 どうも上手く行きません。 と言うのも、数値を出力しようとすると、2byte出力になってしまうのです。 実際には↓の様にやっております。 //引数:HttpServletResponse response //例:0x0d(13)を出力 response.setContentType("binary"); //PrintWriter out = response.getWriter() も結果同じ ServletOutputStream outputStream = response.getOutputStream(); //Integer integer = new Integer(0x0d); //byte bs = integer.byteValue(); //outputStream.print(bs); これも0x0d直書きと一緒の結果 outputStream.print(0x0d); 出力ダンプ 0x31 0x33 (数値の1と3で1byteづつ出力される) これを以下の様にやりたいのですが、 出力ダンプ 0x0d 0x00 (13を0x0dとして1byteで出力したい) 数値の1桁までは1byte出力してくれるのですが、 どうも2桁以上ですと桁毎に1byteづつ(10なら"1"と"0"に分けられる) 出力してくれるようです。 ここで詰まってしまい、諸先輩方のお知恵をお借りしたいのです。 お忙しい中申し訳ありませんが、アドバイスの程宜しくお願いいたします。 |
|
投稿日時: 2006-03-27 16:56
ServletOutputStreamのprint(hoge)は、文字列としての出力なので、
数値を文字列に変換し、 0x31 0x33 = "13" となっているのでしょう。 なので、write(byte)メソッドで書き出せばよいのではないでしょうか。 |
|
投稿日時: 2006-03-27 17:10
かしん様アドバイスありがとう御座いました。
Integer integer = new Integer(0x0d); byte bs = integer.byteValue(); outputStream.write(bs); これで無事ダンプに0x0dと出力されました。 本当にありがとう御座いました。 |
1