Вопрос "Как прочитать локальный (res/raw) файл построчно?" имеет дело с аналогичной проблемой, но мне не удалось построить решение на основе ответов, представленных там. Я получил очень полезную информацию (класс DataInputStream, у которого есть метод readLine), и я исследовал это на веб-сайте разработчика и попытался заставить его работать.
То, что я пытаюсь сделать, это прочитать информацию, хранящуюся в последовательных строках текстового файла, в массив строк, так что первая строка является первым элементом массива, вторая строка является следующим элементом массива и т. д.... а затем эта строка Массив будет использоваться для заполнения текстовых полей в следующем открытом действии. Все это происходит внутри переключателя (в зависимости от случая, т.е. какой элемент списка выбран, загружается другой текстовый файл). Вот что у меня есть до сих пор:
//Retrieve necessary text file for inputstream
InputStream buildinginfo = getResources().openRawResource(R.raw.testbuilding);
class DataInputStream extends FilterInputStream{
protected DataInputStream(InputStream buildinginfo) {
super(buildinginfo);
// TODO Auto-generated constructor stub
int i;
String[] building_info;
//Assign lines of text to array
for(i=0; i<5; i++){
building_info[i] = buildinginfo.readLine();
}
}
}
Пока с редактором все в порядке, за исключением этих ошибок, а у меня недостаточно опыта, чтобы в них разобраться. Я понимаю, что они говорят, но не знаю, как их исправить. Ошибки находятся в разделе внутри корпуса переключателя, где я пытаюсь настроить входной поток и присвоить значения. Самое главное, в строке, где происходит команда readLine, я получаю: "- Метод readLine не определен для типа DataInputStream" "- Метод readLine не определен для типа InputStream"
Этого я не понимаю, потому что, если я не ошибаюсь, здесь написано (http://developer.android.com/reference/java/io/DataInputStream.html), что в классе DataInputStream доступен метод readLine (я узнал об этом из вопроса, упомянутого выше). Очевидно, я неправильно использовал DataInputStream, но я не могу понять, как это сделать. Я просмотрел несколько вопросов здесь и несколько раз ссылался на страницу, указанную выше.
Если кто-нибудь может увидеть, что я делаю неправильно, я был бы очень признателен за вашу помощь. Если я использую не то дерево для такого рода задач, я приношу свои извинения за потраченное время, но некоторые рекомендации или ссылки на соответствующий учебный ресурс были бы весьма признательны. Я провел последние два дня, пытаясь выяснить эти ошибки.