Ver Mensaje Individual
  #1  
Viejo 08/04/13, 14:07:55
Avatar de lucas.werner
lucas.werner lucas.werner no está en línea
Usuario novato en la web
Mensajes: 2
 
Fecha de registro: abr 2013
Mensajes: 2
Modelo de smartphone: gt-i9100
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
[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!!
Responder Con Cita