Проблема с чтением Java из файла

У меня есть файл, назовем его text.txt. Он содержит несколько строк текста. Я пытаюсь прочитать это с помощью своего кода, чтобы я мог редактировать его, используя свой код, к сожалению, всякий раз, когда я пытаюсь его прочитать, он просто возвращает ноль и вообще не загружает код. Никаких сообщений об ошибках или чего-то подобного.

Примером может служить файл со следующим:

a
b
c
d
e
f

при загрузке он загружает следующее:

a
b
c
d
null

Что для меня не имеет никакого смысла, поскольку, если он входит в цикл while, он не должен выходить! Может ли кто-нибудь помочь мне, пожалуйста?

try
{
     File theFile = new File(docName);

     if (theFile.exists() && theFile.canRead())
     {  
        BufferedReader docFile;
        docFile = new BufferedReader(
              new FileReader(f));

        String aLine = docFile.readLine();

        while (aLine != null)
        {  
           aLine = docFile.readLine();
           doc.add( aLine );
        }

        docFile.close();
     }

person steveom    schedule 26.02.2011    source источник


Ответы (3)


Обратите внимание, что вы читаете первую строку с

String aLine = docFile.readLine();

а затем вы отбрасываете эту строку, делая

aLine = docFile.readLine();

внутри петли.

person Jong Bor Lee    schedule 26.02.2011
comment
Не говоря уже о том, что он добавляет aLine в документ прежде чем проверять, является ли он нулевым. - person johusman; 26.02.2011

Добавьте строку перед чтением следующей строки. Если вы думаете об этом логически, это должно иметь смысл, а если нет, пожалуйста, спросите.

person Hovercraft Full Of Eels    schedule 26.02.2011

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

person MikeH    schedule 26.02.2011