Quote Originariamente inviata da Giuso Visualizza il messaggio
Ora però con questo carattere non riesco a verificare se rappresenta EOF in quanto il -1 non è rappresentabile come carattere. Mi stampa infatti un carattere non riconosciuto. Chiedevo quindi se cè un modo per rilevare la fine del file avendo un tipo char e non intero.
Precisiamo una cosa: il cast di -1 a char lo fa diventare un char di codice 0xFFFF (nella notazione Unicode: U+FFFF). Che per definizione Unicode (vedere es. https://en.wikipedia.org/wiki/Specials_(Unicode_block) ) è un "not a character". Quindi in linea di principio si potrebbe forse usare nel tuo caso specifico per indicare EOF, sebbene non sia proprio ortodosso al massimo (dipende da chi/dove usa quel tuo readChar() ).

Ci sono comunque alcune alternative:

a) Se Buffer.read() dà -1, fai lanciare java.io.EOFException, che è fatta apposta per questo.
b) Se Buffer.read() dà -1 setti un flag nel tuo oggetto, che poi puoi testare in un secondo momento.

Ci potrebbero essere altri design ma bisognerebbe entrare più nel merito di quello che stai cercando di fare.