Java newbie: infinite loop to find specific text in a file
I need to find a line at a specific line in a text file that is multiple lines of lines. However, my loop for finding text or end of file is always looking. I know the line is in the file. Here is the code I'm using to find the text - but be careful, if you try it on your system, even with a simple text file, it will go into a perpetual loop.
I really appreciate any advice or pointers to explain what I am doing wrong here.
private static void locateText(String locateText, BufferedReader locateBffer) {
boolean unfound = true;
try
{
String line = locateBffer.readLine();
while (unfound)
{
line = locateBffer.readLine();
if ((line.equals(locateText)) || (line == null))
{
unfound = false;
}
}
}
catch(IOException e)
{
System.out.println("I/O error in locateText");
}
}
Update: Found a problem - it didn't find a match on the first line of the file.
source to share
I think GaryF is right (your text is on the first line of your file).
I wanted to specify a line in your code:
if ((line.equals(locateText)) || (line == null)) {
you have to write this:
if ((line == null) || (line.equals(locateText)) {
Indeed, if the string is zero, your code will throw a NullPointerException. This is why you should check if there is one line
null
before.
In addition to this, I suggest you familiarize yourself with the Apache commons.lang library as it provides some pretty useful classes for text (e.g. StringUtils) ...
source to share