Ciao a tutti e grazie sempre per la disponibilità

Avrei due domande in un certo senso quasi collegate:


1)Mi si presenta la necessità di leggere su una memoria (sempre la solita) una serie di informazioni eterogenee ripetute
sempre tramite un metodo che memorizza il tutto in un array di byte (readbuffer)

Esempio:

usa stringa esadecimale del genere :

00 15 41 4C 45 53 53 41 4E 44 52 4F .... che rappresenta (21) codice utente (ALESSANDRO) nome utente ...data di nascita
ecc ecc

queste informazioni si ripetono per 165 utenti ...

vorrei evitare di mandare in lettura sulla memoria 165 volte (utenti) per cui la domanda è:

esiste qualche alternativa che mi permette, dopo aver letto tutta la memoria una sola volta e memorizzata nel readbuffer
di poter poi estrapolare le informazioni per ogni utente ad esempio ho letto (DataInputStream) puo' fare al mio caso???


2) La seconda domanda è:
Una di queste informazioni è memorizzata con una particolare combinazione di bit che poi letti tutti insieme mi determinano una
rappresentazione esadecimale ad esempio:



75 (esadecimale) = 1110101 ... io dovrei utilizzare solo alcuni di questi bit

esistono metodi che permettono di lavorare sui bit ... a parte shif e bitwise ...


grazie a tutti per la cortesia