Lo mismo, pero en vez de usar un FileReader, usa un FileInputStream y usa los métodos de leer bytes. Idem para la parte de escribir.
Por eficiencia, conviente meter este FileInputStream en un BufferedInputStream y usar este en vez de directamente el FileInputStream. Lo mismo para la escritura.