Lectura de un archivo de texto línea por línea en android

Hola Acabo de empezar a aprender el desarrollo de Android y estoy tratando de construir una aplicación que lee el texto de los archivos. He estado buscando en Internet, pero no parece encontrar la manera de hacerlo, así que tengo algunas preguntas ..

1.¿Cómo hacer esto? ¿Cuál es la forma preferida de leer un archivo línea por línea en android?

2. ¿Dónde debo almacenar el archivo? Debe estar en la carpeta en bruto o tal vez en la carpeta de activos?

Así que esto es lo que ya he intentado: "(creo que el problema puede ser encontrar el archivo ..)

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.filereader); try { // open the file for reading InputStream fis = new FileInputStream("text.txt"); // if file the available for reading if (fis != null) { // prepare the file for reading InputStreamReader chapterReader = new InputStreamReader(fis); BufferedReader buffreader = new BufferedReader(chapterReader); String line; // read every line of the file into the line-variable, on line at the time do { line = buffreader.readLine(); // do something with the line System.out.println(line); } while (line != null); } } catch (Exception e) { // print stack trace. } finally { // close the file. try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } 

}

Depende de lo que tengas la intención de hacer con ese archivo. Si su objetivo es sólo leer el archivo, entonces la carpeta de activos es el camino a seguir. Si desea almacenar información en ese archivo cuando haya terminado de trabajar con él, debe ponerlo en el dispositivo.

Si elige la opción número 2, debe decidir si desea que otras aplicaciones lean el archivo. Puede encontrar más información en esta dirección:

http://developer.android.com/training/basics/data-storage/files.html

De lo contrario, puede leer / escribir directamente en el dispositivo con el procedimiento estándar de Java, tal como describió. Sin embargo, el camino del archivo probablemente sería

"/sdcard/text.txt"

EDITAR:

He aquí un pedazo de código para empezar

 FileInputStream is; BufferedReader reader; final File file = new File("/sdcard/text.txt"); if (file.exists()) { is = new FileInputStream(file); reader = new BufferedReader(new InputStreamReader(is)); String line = reader.readLine(); while(line != null){ Log.d("StackOverflow", line); line = reader.readLine(); } } 

Pero asume que usted sabe que ha puesto el text.txt en la raíz de su tarjeta SD.

Si el archivo está en la carpeta de activos, tiene que hacer esto:

 BufferedReader reader; try{ final InputStream file = getAssets().open("text.txt"); reader = new BufferedReader(new InputStreamReader(file)); String line = reader.readLine(); while(line != null){ Log.d("StackOverflow", line); line = reader.readLine(); } } catch(IOException ioe){ ioe.printStackTrace(); } 

Su código se ve bien sin embargo, usted debe hacer su archivo de lectura de forma asincrónica. Para la ruta del archivo, depende de si es un archivo que se agrupa en el APK o un archivo que se descarga en la carpeta de datos de la aplicación. Dependiendo de la versión de Android que esté apuntando, usaría intentar con recursos …

Para leer de los activos que puede hacer esto en una actividad:

 reader = new BufferedReader( new InputStreamReader(getAssets().open("filename.txt"))); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.