0

特定のバイトから読み取りを開始するにはどうすればよいですか? 私は次のコードを持っています:

        try {
            while ( (len = f.read(buffer)) > 0 ) {}         
        }

たとえば、バイト 50 から読み取りを開始したいとします。

4

2 に答える 2

3

スキップ方法を使用する必要があります。 http://developer.android.com/reference/java/io/InputStream.html#skip(long

必要なバイト数をスキップできます。

int nbToSkip = 50
while (nbToSkip > 0) {
   int nbSkipped = f.skip( nbToSkip );
   nbToSkip -= nbSkipped ; 
}
于 2012-06-08T11:21:55.817 に答える
0

「f」のタイプはわかりませんが、ある種のストリームであると仮定します。

また、50 バイトのブロックで読み取りたいということですか、それともストリームの 50 番目のバイトから開始するということですか? 私は後者を仮定します。

どの言語を使用しているかはわかりませんが、とにかくここに行きます:

次のように、ストリーム内の特定の位置をシークできるシークのような関数があるかもしれません。

f.seek(50, SEEK_START);

それ以外の場合は、ストリームから 50 バイト、または 1 バイトの 50 倍を読み取るだけで、貧弱な方法でそれを行うことができます。

これ以上参照せずに良い答えを出すのは難しいです。

于 2012-06-08T11:00:50.430 に答える