私は現在、自分のコードにcom.google.common.io.ByteArrayDataInput
を使用しています。私が書いているのは、バイナリファイルのローダーの一種です。残念ながら、ByteArrayDataInputは、内部バイト配列に何バイト残っているかの情報を提供しません。そのような情報を提供するこのクラスの代替手段はありますか?私はcom.google.common.io.ByteArrayDataInput
のための私自身のラッパークラスを書くことができますが、私はそれを避けたいと思います。com.google.common.io.ByteArrayDataInputの代替ですか?
EDIT
問題は私のcom.google.common.io.ByteArrayDataInput
インスタンスへの参照は、メソッドの連鎖を通じて非常に深く渡されていることです。それは次のようになります。
loadA(ByteArrayDataInput in)
は等々loadC(in);
を呼び出し、loadB(in)
を起動します。..
LOADXのすべての
は()メソッドin
から何かを読み込みます。そして、私は
loadC()
の
ByteArrayDataInput.readFully()
メソッドを呼び出したいと思います。そのレベルで何バイト読み込むかを確認したいと思います。このクラスで達成するには、bytesLeft情報をすべての
loadX()
メソッドに渡す必要があります。
すでに読み込まれたバイト数を数えれば、ファイルサイズは分かります。あなたが使っている実装クラスはどれですか? – vulkanino
@vulkanino:私の編集を参照してください – Lukasz
ここで助けてください - 例外をスローしない以外、ByteArrayDataInputは、ByteArrayInputStreamをラッピングするObjectInputStreamが提供していないものを提供していますか?たぶん私は朝のコーヒーが必要なだけかもしれませんが、意味のある違いはありません。 – cutchin