Java Buffered Reader, чтение построчно
Эй, у меня есть следующий метод, который проверяет, является ли слово допустимым словом, просматривая большой файл.txt и проверяя, есть ли это слово. Прямо сейчас метод работает должным образом, только если слова в файле.txt находятся на одной строке с одним пробелом между собой. Есть ли какой-нибудь способ, которым я могу сделать так, чтобы он читал список слов построчно; если есть одно слово в строке. Например, если файл.txt ориентирован так:
word1
word2
Вот мой метод:
private boolean isWord(String word){
try{
//search .txt file of valid words. !!Will only read properly if there is a single space between each word.
BufferedReader in = new BufferedReader(new FileReader("/Users/user/Documents/workspace/AnagramAlgorithm/src/words.txt"));
String str;
while ((str = in.readLine()) != null){
if (str.indexOf(word) > -1){
return true;
}
else{
return false;
}
}
in.close();
}
catch (IOException e){
}
return false;
}
1 ответ
Решение
В вашем коде, если в первой строке нет слова, вы сразу же возвращаете false. Измените его так, чтобы оно возвращало false только после того, как вы прошли весь файл:
while ((str = in.readLine()) != null){
if (str.equals(word)){
return true;
}
}
return false;