Ahora que sabemos leer y grabar ficheros, podemos mirar el problema con el que nos podemos encontrar si queremos leer o grabar ficheros que utilicen distintas codificaciones de caracteres.
Para poder leer un fichero e indicar la codificación de caracteres deseada, utilizamos otro filtro:
Y para hacerlo en un fichero de salida, utilizaremos, p. ejemplo
Como podéis imaginar, en FICHERO_ENTRADA y FICHERO_SALIDA son dos Strings con los nombres de fichero, mientras que CODIGO_ENTRADA Y CODIGO_SALIDA son los códigos como UTF-8 o ASCII
Ahora solo nos queda ir leyendo el fichero de entrada y guardar cada línea leída, en el fichero de salida….
A continuación, os dejo un programa en donde lee un fichero codificado UTF-8 y graba un fichero codificado ASCII
Algunas notas:
En la línea 24, definimos el objeto out ya que se va a utilizar en distintos scopes
En la línea 25, conseguimos el separador de líneas del sistema operativo actual, para que la grabación en fichero aparezca en registros distintos
De la 27 a la 29, abrimos el fichero de entrada, indicándole la codificación y añadiendo el BufferedReader y de la 31 a la 33, abrimos el de salida, añadiéndole también el BufferedReader
De la 36 a la 42 entramos en un bucle para ir leyendo y grabando cada uno de las líneas leídas a las que tenemos que añadir el fin de línea.