Come vengono aggiornati la variabile di Java Bytebuffer e la variabile di posizione?
https://softwareengineering.stackexchange.com/questions/164424
-
05-11-2019 - |
Domanda
Ci sono due scenari: scrivere e leggere
Scrivere:
Ogni volta che scrivo qualcosa al bytebuffer chiamando il suo put(byte[])
Metodo il position
La variabile è incrementata come: current position + size of byte[]
e limit
rimane al massimo.
Se, tuttavia, metto i dati in un buffer di visualizzazione, dovrò, manualmente, calcolare e aggiornare il position
Prima di chiamare il write(ByteBuffer)
Metodo del canale per scrivere qualcosa, dovrò flip()
il bytebuffer in modo che
position
punta a zero e limit
punta all'ultimo byte che è stato scritto al bytebuffer.
Lettura:
Ogni volta che chiamo il read(ByteBuffer)
metodo di un canale per leggere qualcosa, il position
La variabile rimane a 0 e il limit
La variabile dei bytebuffer punta all'ultimo byte che è stato letto. Quindi, se il byteBuffer è più piccolo del file che viene letto, il limit
La variabile viene spinta al massimo
Ciò significa che il bytebuffer è già capovolto e posso procedere all'estrazione dei valori dal bytebuffer.
Per favore, correggimi dove sbaglio :)
Nessuna soluzione corretta