View Single Post
Old 08-04-2010, 17:08   #2
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da federico100mt Guarda i messaggi
... 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.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 08-04-2010 alle 17:13.
banryu79 è offline   Rispondi citando il messaggio o parte di esso