lunes, 28 de abril de 2008

Leer de fichero y guardar en un HashMap

Map provincias= new HashMap();
try {
FileReader fr = new FileReader("/temp/provincias.txt");
BufferedReader bf = new BufferedReader(fr);
String linea;
while ((linea = bf.readLine()) != null) {
String[] cadenas = linea.split("\t");
provincias.put(cadenas[0], cadenas[1]);
}
fr.close();
System.out.println("Provincias importadas correctamente");
} catch (FileNotFoundException e) {
System.out.println("Fichero no encontrado");
e.printStackTrace();
} catch (IOException e) {
System.out.println("Error de E/S");
e.printStackTrace();
}

}

He tenido un pequeño problema al leer de esta forma los fichero pues los carateres como la ñ o los acentos nolos leia y metia unos simbolos raros,como un combox con una iterrogracion.
Para arreglar este problema he cambiado la forma de leer los ficheros

FileInputStream fis = new FileInputStream("/temp/provincias.txt");
InputStreamReader is = new InputStreamReader(fis, "ISO-8859-1");
BufferedReader bf = new BufferedReader(is);

Asi le indico el tipo de encoding.