Quote:
Originariamente inviato da federico100mt
... Per esempio, nel caso io voglia iniziare a leggere dal byte numero 40, e poi per esempio se il suo valore fa parte di un certo range, leggerne uno 30 byte sopra, o ritornare addirittura a leggere lo stesso, come devo settare il metodo mark? mi piacerebbe capire meglio come giocare con queste due funzioni...
|
Esempio:
[a] Leggo il byte 23 (ora il buffer punta al byte 24).
[b] Il valore del byte letto mi dice che il prossimo byte da leggere è il 40;
[c] Marco la posizione attuale indicando al buffer che deve mantenere valido il mark per i prossimi 17 byte (40-23=17).
Codice:
buffer.mark(readLimit); // con 'readLimit' che vale 17
[d] Skippo 17-1=16 byte (ora il buffer punta al byte 24+16=40):
Codice:
buffer.skip(n); // con 'n' che vale 16
[e] Leggo il prossimo byte (ora buffer punta al byte 41);
[f] Eseguo il reset (ora il buffer punta al byte 24).
Sono tornato nella situazione da cui ero partito, al punto [a].
Questo è quello che proverei a fare io, dopo aver letto la documentazione di InputStream.