DataInput.skipBytes に関する Sunのドキュメントには、「入力ストリームから n バイトのデータをスキップしようとし、スキップされたバイトを破棄しようとします。しかし、それより少ない数のバイト、おそらくゼロをスキップする可能性があります。これは、次の結果として生じる可能性があります。 n バイトがスキップされる前にファイルの終わりに到達することは、1 つの可能性にすぎません。」
ファイルの終わりに到達する以外に
skipBytes()
、正しいバイト数をスキップしないのはなぜですか? (DataInputStream
私が使用している は、 aFileInputStream
または aのいずれかをラップしPipedInputStream
ます。)間違いなく n バイトをスキップして
EOFException
、これによりファイルの最後に移動する場合にスローしたい場合readFully()
、結果のバイト配列を使用して無視する必要がありますか? それとももっと良い方法がありますか?