Esistono due scenari: scrittura e lettura
Scrittura :
Ogni volta che scrivo qualcosa sul ByteBuffer chiamando il suo metodo put(byte[]) la variabile position viene incrementata come: current position + size of byte[] e limit rimane al massimo.
Se, tuttavia, inserisco i dati in un buffer di visualizzazione, dovrò, manualmente, calcolare e aggiornare il position
Prima chiamo il metodo write(ByteBuffer) del canale per scrivere qualcosa, dovrò flip() del Bytebuffer in modo che
position punti a zero e limit punti all'ultimo byte che è stato scritto sul ByteBuffer .
lettura :
Ogni volta che chiamo il metodo read(ByteBuffer) di un canale per leggere qualcosa, la variabile position rimane a 0 e la variabile limit di ByteBuffer punta all'ultimo byte letto. Quindi, se ByteBuffer è inferiore al file letto, la variabile limit viene trasferita a max
Ciò significa che ByteBuffer è già capovolto e posso procedere all'estrazione dei valori dal ByteBuffer.
Per favore, correggimi dove sono sbagliato :)