Reading lines with BufferedReader and checking for end of file

Zippy picture Zippy · Jul 16, 2013 · Viewed 75.8k times · Source

If I have something like this in my code:

String line = r.readLine();  //Where r is a bufferedReader

How can I avoid a crash if the next line is the end of the file? (i.e. null)

I need to read the next line because there may be something there that I need to deal with but if there isn't the code just crashes.

If there is something there then all is OK, but I can't be guaranteed that there will be something there.

So if I do something like: (pseudo code):

if (r.readLine is null)
//End code

else {check line again and excecute code depending on what the next line is}

The issue I have with something like this is, that when I check the line against null, it already moves onto the next line, so how can I check it again?

I've not worked out a way to do this - any suggestions would be a great help.

Answer

Andremoniy picture Andremoniy · Jul 16, 2013

Am... You can simply use such construction:

String line;

while ((line = r.readLine()) != null) {
   // do your stuff...
}