Leer un fichero UTF-8

22/Sep/2011 Java , , , , 1 Comentario

Cuándo accedemos a un fichero tenemos que tener cuidado en su codificación. Como ya vimos al leer un fichero en ISO Latin 1. En este caso vamos a leer un fichero UTF-8.

Hay que tener especial cuidado con la codificación del fichero ya que dependiendo del encoding hay carácteres que se representan de diferente forma, o simplemente que no se representan.

Los pasos para leer el fichero UTF-8 son muy sencillos. Ya que la lectura se hace sobre un BufferedReader, al cual hay que darle un InputStreamReader de entrada.

Y será sobre el InputStreamReader donde indiquemos el encoding del fichero. En nuestro caso al ser uft-8 deberemos de utilizar el charset "uft-8". Quedándonos la siguiente línea de código:

  1. BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("FicheroUTF8.txt"), "utf-8"));

Cabe notar que el origen de lectura, es decir, el fichero, lo indicaremos con un FileInputStream.

Ya solo nos quedará recorrer el fichero mediante un bucle:

  1. String sCadena;
  2. while ((sCadena = in.readLine())!=null) {
  3. System.out.println(sCadena);
  4. }

Al trabajar con los encoding hay que tener especial cuidado de controlar la excepción UnsupportedEncodingException para aquellos encodings no soportados. Y al acceder a ficheros la típica excepción IOException.

Vídeos sobre Java IO


Un comentario en “Leer un fichero UTF-8”

Víctor Cuervo

salvador cardenas

y para leer una tabla de mysql ?
Es que al comparar un string desde el workbench de java con un campo varchar (leido con getNString) me dice que son diferentes, aunque en realidad son identicos los 2 strings
lo necesito para hacer busquedas en la tabla (la cual ya la meti en un array)

Los comentarios están cerrados.