Se vuoi utilizzare la versione di read che prende i tre parametri:
codice:
int read(char[] cbuf, int offset, int length);
Puoi procedere così:
codice:
int num = 0;
int quanti = 10;   // Così leggo 10 caratteri alla volta;
int offset = 0;
char [] cbuf = new char[quanti];
do {
   ...
   num = br.read(cbuf, offset, quanti);   // Leggo 'quanti' caratteri a partire da 'offset' e li memorizzo in 'cbuf'
   offset += num;   // Incremento l'offset.
   for (int i=0; i<cbuf.length; i++)
      System.out.println(cbuf[i]);
   ...
} while (num > -1);
In questo modo, ciascun carattere letto viene salvato in un elemento dell'array di caratteri cbuf.


Ciao.