Вопрос

я и мой приятель работаем над программой для нашего курса объектно-ориентированного программирования в колледже.Мы пытаемся записать текст в файл в качестве базы данных для получения информации.Проблема в том, что когда мы пытаемся прочитать соответствующие строки с помощью BufferedReader, мы, похоже, не можем понять, как прочитать правильные строки.Единственными доступными функциями, по-видимому, являются read(), которая считывает только символ.readLine() считывает только строку (не ту строку, которую мы хотим, чтобы она читала.skip() пропускает только указанное количество символов.У кого-нибудь есть идея, как мы могли бы сообщить программе, какую строку мы хотим прочитать?Наш метод getAnswer() с аргументом int RowNumber - это тот, который мы пытаемся сделать:Суперкласс: http://pastebin.com/d2d9ac07f Подкласс не имеет значения (в основном потому, что мы его еще не написали).Конечно, мы работаем с Java.Заранее благодарю.

Это было полезно?

Решение

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

Нет никакого метода в BufferedReader или другой стандартный библиотечный класс, который автоматически прочитает номер строки N для вас.

Другие советы

Используйте буферизованные Readers .readLine();метод до тех пор, пока вы не получите нужные вам данные.Выбросьте все, чего у вас нет, а затем сохраните те данные, которые вам действительно нужны.Конечно, это неэффективно, но ваша работа должна быть выполнена.

readLine() в Java просто считывает данные из буфера до тех пор, пока не наткнется на символ новой строки, поэтому у вас действительно не было бы возможности указать который строка должна быть прочитана из файла, потому что Java не может точно знать, какой длины каждая строка.

По этой причине также трудно использовать skip() чтобы перейти к определенной строке.

Возможно, для вас было бы лучше перебирать строки, используя readLine(), затем, когда ваш счетчик окажется там, где вы хотели бы, чтобы он был, начинайте обработку.

String line = myBufferedReader.readLine();
for(int i = 1; i < whichLine && line != null; i++){
    line = myBufferedReader.readLine();
}

/* do something */
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top