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.


Rispondi quotando