我在Java中遇到一个奇怪的问题... 我想比较这个文件的每一行和一个字符串(主变量),但是(我不知道为什么),while循环总是比较文件的第一行而忽略第二行,第三行......
以下是代码:
fr = new FileReader (file);
inf = new BufferedReader(fr);
String l;
while ((l=inf.readLine()) != null) {
if (host.contains(l))
return true;
else
return false;
}
任何帮助将不胜感激......
答案 0 :(得分:2)
两个问题:
相反,试试这个:
String l;
while ((l=inf.readLine()) != null)
if (l.contains(host))
return true;
return false;
答案 1 :(得分:1)
应该是host.equals(l)
,或者可能是l.contains(host)
。这取决于你想做什么。
答案 2 :(得分:1)
由于循环中的if / else语句,它只测试文件中的第一行。两个分支都会导致返回,从而停止处理文件内容的其余部分。
也许你应该在文件结束后返回false?
fr = new FileReader (file);
inf = new BufferedReader(fr);
String l;
while((l=inf.readLine())!=null){
if (host.contains(l))
return true;
}
return false;
答案 3 :(得分:0)
假设您正在查找文件中的主机字符串。你可以这样做。
public boolean contains(Reader in, String word) throws IOException {
BufferedReader inf = new BufferedReader(in);
String l;
boolean found = false;
while((l=inf.readLine())!=null){
if (l.contains(word)) {
found = true;
break;
}
}
return found;
}