Mam świadomość, że flip() ustawia bieżącą pozycję bufora na 0 i ustawia limit poprzedniej pozycji bufora, podczas gdy rewind() po prostu ustawia bieżącą pozycję bufora na 0.różnica między bytebuffer.flip() i bytebuffer.rewind()
W poniższym kodzie albo używam rewind() lub flip() otrzymuję taki sam wynik.
byte b = 127;
bb.put(b);
bb.rewind();//or flip();
System.out.println(bb.get());
bb.rewind();// or flip();
System.out.println(bb.get());
Czy możesz podać mi prawdziwy przykład, w którym różnica tych dwóch metod ma znaczenie? Z góry dziękuję. EDYCJA: Znalazłem rozwiązanie w linku this, jest ono bardzo dobrze objaśnione i szczegółowe, aby dokładnie zrozumieć użycie bufora i klas kanałów.
Czy możesz mi powiedzieć, dlaczego piszesz 'read()/put()' i 'write()/get () '? Czy nie powinno to być 'read()/get()' i 'write()/put()'? Ponieważ uzyskanie operacji oznacza czytanie i używanie oznacza pisanie? – user963241