Java 7: leyendo ficheros indicando el encoding
viernes, agosto 14, 2015 at 9:02AM
jcarmonaloeches in java 7, java 7

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");
			List linesISO88591 = 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!

Article originally appeared on javaHispano (http://www.javahispano.org/).
See website for complete article licensing information.