Мне нужно найти строку на определенной строке в текстовом файле, который состоит из нескольких строк строк. Тем не менее, мой цикл для поиска текста или конца файла вечно ищет. Я знаю, что строка находится в файле. Вот код, который я использую, чтобы найти текст - но будьте осторожны, если вы попробуете его в своей системе даже с помощью простого текстового файла, он перейдет в вечный цикл.Java newbie: бесконечный цикл для поиска определенного текста в файле
Я очень ценю любые советы или указатели, чтобы объяснить, что я делаю неправильно здесь.
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: Нашли проблему - это не найти матч на первой строке файла.
Обратите внимание, что, как правило, более удобным для чтения, чтобы имя булевы после положительного состояния , например boolean found = false; while (! found) –
@elwynn: Нет необходимости удалять ответы на вопросы. Другим людям может помочь в будущем, если у них есть одна и та же проблема и найти это путем поиска SO. –
@elwynn пойти и принять ответ Гэри! – Epaga