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;
Другие вопросы по тегам