Чтение InputStream для Arraylist - PullRequest
9 голосов
/ 16 декабря 2011

Мне нужно прочитать файл dict.txt, который содержит одну строку для строки, и добавить их в массив.

Я пробовал это:

public ArrayList<String> myDict = new ArrayList<String>();

InputStream is = (getResources().openRawResource(R.raw.dict));
BufferedReader r = new BufferedReader(new InputStreamReader(is));
try {
    while (r.readLine() != null) {
        myDict.add(r.readLine());
    }  
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

, но что-то не так ...

Ответы [ 2 ]

15 голосов
/ 16 декабря 2011

Вы повторяете дважды в каждом цикле

String line;
while ((line=r.readLine()) != null) {
    myDict.add(line);
}
10 голосов
/ 13 апреля 2015

Использование Apache IOUtils:

List<String> lines = IOUtils.readLines(inputStream, "UTF-8");
...