studio how from create asset android_asset android android-assets readfile

android - how - Cómo obtener el archivo leído línea por línea



how to create assets folder (3)

El siguiente código debe satisfacer su necesidad

try { // open the file for reading InputStream instream = new FileInputStream("myfilename.txt"); // if file the available for reading if (instream != null) { // prepare the file for reading InputStreamReader inputreader = new InputStreamReader(instream); BufferedReader buffreader = new BufferedReader(inputreader); 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 } while (line != null); } } catch (Exception ex) { // print stack trace. } finally { // close the file. instream.close(); }

Tengo un archivo que contiene texto en línea separada.
Primero quiero mostrar la línea y luego, si TextView un botón, la segunda línea debería aparecer en TextView y la primera debería desaparecer. Luego, si lo presiono de nuevo, debería aparecer la tercera línea y así sucesivamente.

¿Debo usar TextSwitcher o cualquier otra cosa? ¿Cómo puedo hacer eso?


Lo etiquetó como "activos de Android", así que asumiré que su archivo está en la carpeta de activos. Aquí:

InputStream in; BufferedReader reader; String line; TextView text; public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); text = (TextView) findViewById(R.id.textView1); in = this.getAssets().open(<your file>); reader = new BufferedReader(new InputStreamReader(in)); line = reader.readLine(); text.setText(line); Button next = (Button) findViewById(R.id.button1); next.setOnClickListener(this); } public void onClick(View v){ line = reader.readLine(); if (line != null){ text.setText(line); } else { //you may want to close the file now since there''s nothing more to be done here. } }

Prueba esto. No he podido verificar que funcione completamente, pero creo que esta es la idea general que desea seguir. Naturalmente, querrá reemplazar cualquier R.id.textView1/button1 con los nombres que haya especificado en su archivo de diseño.

Además: aquí hay muy pocos errores de comprobación por el bien del espacio. Querrá verificar que su activo exista y estoy bastante seguro de que debería haber un bloque try/catch cuando abra el archivo para leerlo.

Edición: gran error, no es R.layout , es R.id He editado mi respuesta para solucionar el problema.


Simplemente puede utilizar un TextView y un ButtonView. Lee el archivo usando un BufferedReader, te proporcionará una API agradable para leer las líneas una por una. Al hacer clic en el botón, simplemente cambie el texto de la vista de texto usando settext.

También podría considerar leer todo el contenido del archivo y colocarlo dentro de una lista de cadenas, esto puede ser más limpio si su archivo no es demasiado grande.

Saludos, Stéphane