2011-05-17 11 views
14

Estoy escribiendo una aplicación de bloc de notas básica para una unidad en la universidad. He creado la clase principal con un editText que guardo como string textOutput.Android: Leyendo del archivo (Openfileinput)

He utilizado el siguiente código desde el sitio web de desarrolladores de Android para guardar la cadena en un archivo:

  FileOutputStream fos = openFileOutput(textOutput, Context.MODE_PRIVATE); 
      fos.write(textOutput.getBytes()); 
      fos.close(); 

Sin embargo, dicen a leer utiliza las siguientes etapas:

Para leer un archivo del almacenamiento interno:

Llamar a openFileInput() y pasarle el nombre del archivo para leer. Esto devuelve un FileInputStream. Lea los bytes del archivo con read(). Luego cierre la secuencia con close().

¿Qué significa esto, y a quién implementarlo en mi aplicación?

Por favor ayuda.

Respuesta

3

El primer parámetro es el nombre del archivo que está creando/actualizando al usar el método openFileOutput. Utilizando el mismo parámetro que ha enumerado anteriormente puede ser que parezca:

FileInputStream fis = openFileInput(textOutput); 

En cuanto a la lectura de un FileInputStream que está muy bien documentado aquí y en la web. La mejor manera de hacerlo también depende del tipo de archivo que está leyendo (por ejemplo, XML). Así que lo dejo para que lo busquen.

Editar: Aquí es documentation

+0

también darse cuenta de que es probable que no quiere nombrar su archivo un código hash (lo toString() devolverá el valor predeterminado de su objeto en Java) es posible que desee utilizar una cadena en lugar de textOutput como el parámetro. – nibuen

+0

+ 1 para la documentación real. Ahora sé lo que esta 'openFileInput' en realidad es de la que la gente está hablando. – Doomsknight

34

Un ejemplo de cómo utilizar openFileInput:

FileInputStream in = openFileInput("filename.txt"); 
    InputStreamReader inputStreamReader = new InputStreamReader(in); 
    BufferedReader bufferedReader = new BufferedReader(inputStreamReader); 
    StringBuilder sb = new StringBuilder(); 
    String line; 
    while ((line = bufferedReader.readLine()) != null) { 
     sb.append(line); 
    } 
+4

no se olvide de inputStreamReader.close() al final. – marmor