|
[PROBLEMA] Lectura de ficheros en Android
Hola, tengo un problema y por mas que busco no se cual es el fallo :S .
Resulta que meto en un fichero un String ( como prueba simplemente ) , en MODE_APPEND , cada vez que pulso un botón... y despues leo lo que se metio en el fichero...
Algo en teoría bastante simple...pues no va... este es el código :
private void escribirEnFichero() {
try {
FileOutputStream fis= openFileOutput("otraPrueba2.dat", Context.MODE_APPEND);
ObjectOutputStream ois=new ObjectOutputStream(fis);
ois.flush();
String cad= new String("Ejemplo3");
Log.d("Fichero", "escribiendo..."+cad);
ois.writeObject(cad);
ois.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
Log.d("Fichero", "escribiendo...1");
e.printStackTrace();
} catch (StreamCorruptedException e) {
Log.d("Fichero", "escribiendo...2");
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
Log.d("Fichero", "escribiendo...3");
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private List<String> leerFichero(String nombreFichero) {
ArrayList<String> salida = new ArrayList<String>();
try {
FileInputStream fis = openFileInput("otraPrueba2.dat");
ObjectInputStream is = new ObjectInputStream(fis);
String cad=null;
while ((cad=(String)is.readObject())!=null) {
String cad2=cad;
Log.d("Fichero", "Valor de la cadena : "+cad2);
}
is.close();
} catch (EOFException ex) {
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (OptionalDataException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return salida;
}
Y esta es la salida de LogCat:
04-08 14:05:27.933: D/Fichero(31114): escribiendo...Ejemplo3
04-08 14:05:27.933: D/Fichero(31114): Valor de la cadena : Ejemplo
04-08 14:05:27.933: D/Fichero(31114): Valor de la cadena : Ejemplo2
04-08 14:05:28.443: D/Fichero(31114): escribiendo...Ejemplo3
04-08 14:05:28.443: D/Fichero(31114): Valor de la cadena : Ejemplo
04-08 14:05:28.443: D/Fichero(31114): Valor de la cadena : Ejemplo2
(Ejemplo y Ejemplo2 fueron insertadas antes que Ejemplo3 como prueba en otra ejecución de la app)
Es decir, lo que está pasando es que no inserta nada :S . Probé cambiando el flush() , el close() y el reset() en mil lugares diferentes pero nada, no hay manera :S .
Alguien me echa una mano?
Graciasss!!
|