Hmmm ... Ese código no DEBERIA leer lo que esta dentro del archivo. De hecho, lo probe y no lo lee para nada porque obviamente no puedes llamar al metodo toString en el objeto BufferedReader.
Lectura y Escritura de Ficheros en Java
Otra cosa es, el metodo replaceAll() no cambia el String que le pasas sino que RETORNA un nuevo String.
cadena = cadena.replaceAll("hola", "dos");