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