• ベストアンサー

可変長配列について

任意のホストと任意のパケットを送受信するクラス(仮称:PacketSender)を書いているのですが、この中では、TCPの受信用にsocket.getInputStream()を定義し、それをread()して1バイトずつ取り出しています。しかし、Streamですから、取り出してみないと全体の長さはわかりません。 こういった場合、PacketSenderから他に受信データを渡す場合、byte[65535]とか適当な大きさの配列を作って突っ込む、あるいはArrayListを作って逐一addしていくしか方法はないのでしょうか。 ぴったりの長さのbyte[]を返せればいいのですが・・・。

質問者が選んだベストアンサー

  • ベストアンサー
  • UKY
  • ベストアンサー率50% (604/1207)
回答No.1

わたしなら、java.io.ByteArrayOutputStream に読み込んだデータを入れて、すべて読み込んでから toByteArray() メソッドで byte 配列に直します。 もっといい方法があるとおもいますが。

pythian
質問者

お礼

アドバイスありがとうございます!初耳のオブジェクトなので、もっと勉強してみます。

関連するQ&A