我需要在由幾行字符串組成的文本文件中的特定行上找到一個字符串。但是,我的循環找到文本或文件的結尾是永遠搜索。我知道字符串在文件中。這裏是我用來定位文本的代碼 - 但要注意的是,如果您在系統上嘗試使用它,即使使用簡單的文本文件,它也會進入永久循環。Java新手:無限循環搜索文件中的特定文本
我非常感謝任何提示或指示,以解釋我在這裏做錯了什麼。
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");
}
}
更新:發現了問題 - 這是沒有找到該文件的第一行的比賽。
注意,它通常是更具可讀性的名字布爾積極條件之後,例如boolean found = false; while(!found) – 2009-08-28 12:22:56
@elwynn:沒有必要刪除回答的問題。如果他們遇到同樣的問題,可能會在未來幫助其他人,並通過搜索找到它。 – 2009-08-28 12:49:54
@elwynn繼續並接受加里的回答! – Epaga 2009-08-28 13:11:43