Читать текстовый файл в ArrayList построчно - PullRequest
0 голосов
/ 22 октября 2018

В моем последнем проекте я использую .txt файл с именем " atestfile.txt " , который находится в моей папке проектов / raw, которую я создал:

location of file

и вот его содержание:

file content

теперь с использованием этих нескольких простых строк кода..

code

я хочу, чтобы мое приложение вставляло слова из текстового файла в мой ArrayList построчно, как показано на на этот вопрос потрясающий первый ответ.

Однако тост не появится, и, что еще хуже, я получу исключение IndexOutOfBoundsException для test.get (3); строка, которую я использую, и приложение вылетает.

Я целый день пытался избавиться от этой ошибки, но пока не сделал этого.Так как здесь много умных людей, и я хотел бы узнать что-нибудь об этой проблеме, я подумал, что сначала спрошу вас, ребята, за помощью, прежде чем выбросить мой компьютер из окна.

Я предоставлю вам, ребята, мое сообщение об ошибке, код для копирования и вставки, а также структуру моего пакета для получения дополнительной помощи по этой проблеме.

package com.niklas.cp.citypopulation;

huge error message

   final ArrayList<String> test = new ArrayList<String>();

    try {

        Scanner scanner = new Scanner(new File("android.resource:// com.niklas.cp.citypopulation/raw/atestfile.txt"));

        while(scanner.hasNextLine()){


            makeToast(scanner.nextLine(),1);
            test.add(scanner.nextLine());

        }
        scanner.close();

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }

    String abc = test.get(3);
    tv_highscore.setText(abc);

1 Ответ

0 голосов
/ 22 октября 2018

Вы вызываете scanner.nextLine () дважды в каждом цикле, но только добавляете вторую строку к test, поэтому test будет иметь только три строки.
Вы должны написать так

while(scanner.hasNextLine()) {
   String s = scanner.nextLine();
   makeToast(s,1);
   test.add(s);
}

Если выдается исключение FileNotFoundException, попробуйте следующее

InputStream file = getResources().openRawResource(R.raw.atestfile);
Scanner scanner = new Scanner(file);
...