Comment la limite et la position de position de Java Bytebuffer sont-elles mises à jour?
https://softwareengineering.stackexchange.com/questions/164424
-
05-11-2019 - |
Question
Il y a deux scénarios: l'écriture et la lecture
L'écriture:
Chaque fois que j'écris quelque chose sur le bytebuffer en appelant son put(byte[])
Méthode le position
La variable est incrémentée comme: current position + size of byte[]
et limit
Reste au Max.
Si, cependant, je mets les données dans un tampon de vue, je devrai, manuellement, calculer et mettre à jour le position
Avant d'appeler le write(ByteBuffer)
Méthode du canal pour écrire quelque chose, je devrai flip()
le bytebuffer pour que
position
pointe à zéro et limit
Souligne le dernier octet qui a été écrit au bytebuffer.
En lisant:
Chaque fois que j'appelle le read(ByteBuffer)
Méthode d'un canal pour lire quelque chose, le position
la variable reste à 0 et le limit
La variable de l'octebuffer pointe vers le dernier octet qui a été lu. Donc, si l'octe-bytebuffer est plus petit que le fichier en cours de lecture, le limit
la variable est poussée à max
Cela signifie que le bytebuffer est déjà renversé et je peux procéder à l'extraction des valeurs de l'octuble.
S'il vous plaît, corrigez-moi là où je me trompe :)
Pas de solution correcte