Программа чтения данных Java пропускает мои пустые новые строки (\ n) - PullRequest
0 голосов
/ 18 ноября 2011

Хорошо, я попробовал все, но не могу найти ответ. Мой читатель пропускает пустую следующую строку при чтении из TXT-файла. Предполагается удалить все комментарии из текстового файла и распечатать остальные данные как есть. Мой читатель удаляет комментарии и печатает данные, но пропускает пустые новые строки.

MyDataReader.java

public String readLine()
{
    String buf = new String();
String readStr = new String();

int end = 0;
int done = 0;

try
{
    // checks if line extraction is done and marker has non null value
    while (done != 1 && marker != null)
    {
    readStr = theReader.readLine(); // Reads the line from standard input

    if (readStr != null)
    {
        /* If the first character of line isnt marker */
        if (readStr.length() > 0)
        {
            if (!readStr.substring(0, 1).equalsIgnoreCase(marker))
        {
            end = readStr.indexOf(marker);   // checks if marker exists in the string or not
            if (end > 0)
            buf = readStr.substring(0, end);
            else
            buf = readStr;

            done = 1;   // String extraction is done
         }
        }
    }
    else
    {
            buf = null;
        done = 1;
    }
    }
}
// catches the exception
catch (Exception e)
{
    buf = null;
    System.out.println(e);
}

return buf;
}

TestMyDataReader.java

String myStr = new String();

  myStr = _mdr.readLine();

  while (myStr != null)
  {
      //System.out.println("Original String : " + myStr);
      System.out.println(myStr);
      myStr = _mdr.readLine();
  }

Ответы [ 3 ]

2 голосов
/ 18 ноября 2011

if (readStr.length ()> 0)

Это строка кода, которая пропускает пустые строки.

1 голос
/ 18 ноября 2011

Ваш читатель не будет включать символ новой строки в readStr, поэтому чтение в строке "\ n" сделает readStr "", а

readStr.length ()> 0

Примет значение false, пропустив эту строку.

1 голос
/ 18 ноября 2011

много проблем в этом коде, но основная проблема, с которой вы сталкиваетесь, заключается в том, что новые строки не включаются в результат readLine. Таким образом, ваше утверждение if не соответствует действительности (строка фактически пуста

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...