Чтение строк из текстовых файлов на Java - PullRequest
0 голосов
/ 10 июля 2011

Я пытаюсь прочитать информацию о продукте из некоторых текстовых файлов. В моем текстовом файле у меня есть продукты и их информация.

Это мой файл:

Product1:

ID: 1232
Name: ABC35

InStock: Yes

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

Как мне это сделать? Если строка чтения пуста, прочитайте следующую строку.

Заранее спасибо за любую помощь.

Ответы [ 3 ]

4 голосов
/ 10 июля 2011

Я думаю, что я могу быть недоразумением.Предполагая, что у вас есть BufferedReader, ваш основной цикл обработки будет:

br = /* ...get the `BufferedReader`... */;
while ((line = br.readLine()) != null) {
    line = line.trim();
    if (line.length() == 0) {
        continue;
    }

    // Process the non-blank lines from the input here
}

Обновление : Ваш комментарий:

Напримересли я хочу прочитать строку после имени, если эта строка пуста или пуста, я хочу прочитать строку после этого.

Выше показано, как я структурирую свой цикл обработки, но если выпредпочтительнее, вы можете просто использовать функцию, которая возвращает следующую непустую строку:

String readNonBlankLine(BufferedReader br) {
    String line;

    while ((line = br.readLine()) != null) {
        if (line.trim().length() == 0) {
            break;
        }
    }
    return line;
}

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

2 голосов
/ 10 июля 2011

Просто зациклите все строки в файле, и если одна из них пуста, проигнорируйте ее.

Чтобы проверить, не заполнена ли она, просто сравните ее с пустой строкой:

if (line.equals(""))

Это не будет работать со строками с пробелами (пробел, табуляции).Так что вы можете сделать

if (line.trim().equals(""))
1 голос
/ 10 июля 2011

Попробуйте проверить длину строки:

 String line;
 while((line= bufreader.readLine()) != null)
    if (line.trim().length() != 0)
       return line;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...