différence entre bytebuffer.flip() et bytebuffer.rewind()

Je suis conscient que flip() set le tampon courant de la position 0 et la limite supérieure à la précédente tampon position alors que rewind() il suffit de régler le tampon courant de la position à 0.

Dans le code suivant, soit je utiliser rewind() ou flip() j'obtiens le même résultat.

byte b = 127;
bb.put(b);
bb.rewind();//or flip();

System.out.println(bb.get());
bb.rewind();//or flip();
System.out.println(bb.get());

Pourriez-vous me fournir un exemple réel, d'où la différence de ces 2 méthodes qui compte vraiment? Merci à l'avance.
EDIT: j'ai trouvé la solution dans cette lien, c'est très bien expliqué et détaillé pour une compréhension approfondie de la mémoire tampon et le canal de classes.

OriginalL'auteur Rollerball | 2013-05-09