El escenario es el siguiente: tenemos un fichero de texto, desarrollado en codificación UTF-8, que debemos leer en nuestro sistema.
El contenido del fichero es el siguiente:
abcdefghijklmnñopqrstuvwxyz
áéíóú
pingüino
Para realizar la lectura, ejecutamos el siguiente código:
package javahispano; import java.io.IOException; import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; public class Main { private static final String FILE = "pruebasEncodingJava7_UTF8.txt"; private static final String PATH = "/home/jaimecl/Documentos/pruebas/"; private static final String UTF_8 = "UTF-8"; private static final String ISO_8859_1 = "ISO-8859-1"; public static void main(String args[]) { /* Obtenemos el fichero */ Path file = Paths.get(PATH, FILE); try { /* * Leemos todas las líneas del mismo en con encoding ISO_8859_1 y * mostramos la información por pantalla */ Charset charsetISO88591 = Charset.forName(ISO_8859_1); System.out.println("\nLeyendo el fichero con encoding " + ISO_8859_1 + "\n"); ListlinesISO88591 = Files.readAllLines(file, charsetISO88591); for (String lineISO88591 : linesISO88591) { System.out.println(lineISO88591); } /* Análogo al punto anterior, con encoding UTF_8 */ Charset charsetUTF8 = Charset.forName(UTF_8); System.out.println("\nLeyendo el fichero con encoding " + UTF_8 + "....\n"); List linesUTF8 = Files.readAllLines(file, charsetUTF8); for (String lineUTF8 : linesUTF8) { System.out.println(lineUTF8); } } catch (IOException e) { System.out.println(e); } } } }
¿Cuál es la salida del mismo?
Leyendo el fichero con encoding ISO-8859-1
abcdefghijklmnñopqrstuvwxyz
áéÃóú
pingüino
Leyendo el fichero con encoding UTF-8....
abcdefghijklmnñopqrstuvwxyz
áéíóú
pingüino
Como podemos ver, esta característica puede ser de mucha utilidad en estos casos. ¡A tener en cuenta, developers!