Il codice va sempre postato all'interno dei tag [code] e [/code] (ho già modificato io).

Per quanto riguarda le operazioni con file binari non è corretto l'utilizzo di variabili di tipo char o il tipo di dato int (anche se read() restituisce esattamente u int), ma va utilizzato il tipo di dato byte.

Un byte occupa 8 bit, mentre un int ne occupa ben 32...

Seconda cosa: i file vanno sempre chiusi, quando si finisce di utilizzarli, questo più per correttezza formale, che pratica.

Altra cosa: la documentazione specifica che la classe FileReader è una classe adatta alla lettura di file di testo (character-files), non certo per file di tipo binario, dove è più opportuno utilizzare FileInputStream o DataInputStream.