Как получить чтение файла по строкам

У меня есть файл, содержащий текст в отдельной строке.
Сначала я хочу отобразить строку, а затем, если я нажму кнопку, вторая строка должна отображаться в TextView и первая строка должна исчезнуть. Затем, если я снова нажму на нее, появится третья строка и так далее.

Должен ли я использовать TextSwitcher или что-нибудь еще? Как я могу это сделать?

Solutions Collecting From Web of "Как получить чтение файла по строкам"

Вы отметили его как «андроид-активы», поэтому я собираюсь предположить, что ваш файл находится в папке с ресурсами. Вот:

 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. } } 

Попробуй. Я не смог проверить, что он работает полностью, но я считаю, что это общая идея, которой вы хотите следовать. Естественно, вы захотите заменить любую R.id.textView1/button1 именами, указанными в вашем файле макета.

Кроме того: здесь очень мало ошибок при проверке пространства. Вы захотите проверить, что ваш актив существует, и я уверен, что должен быть блок try/catch когда вы открываете файл для чтения.

Изменить: Большая ошибка. Это не R.layout , это R.id Я отредактировал свой ответ, чтобы исправить проблему.

Следующий код должен удовлетворить ваши потребности

 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(); } 

Вы можете просто использовать TextView и ButtonView. Прочитайте файл с помощью BufferedReader, он предоставит вам хороший API для чтения строк один за другим. При щелчке на кнопке просто измените текст текстового поля с помощью settext.

Вы также можете рассмотреть возможность чтения всего содержимого файла и помещения его в список строк, это может быть более чистым, если ваш файл не слишком большой.

С уважением, Стефан