Nella scrittura di programmi che leggono file va tenuto conto che un file può anche essere vuoto, ossia contenere zero caratteri. In questo caso, la prima esecuzione di fr.read() ritorna subito -1.
Per esempio, il seguente frammento di codice non funziona:
// codice errato int x; char c; x=fr.read(); do { c=(char) x; System.out.println(c); x=fr.read(); } while(x!=-1);
Se il file è vuoto, allora l'esecuzione di fr.read() ritorna -1, che però a questo punto viene stampato nonostante il file non contenga nessun carattere.