Java Bufferedreader,逐行读取

时间:2014-05-25 21:28:12

标签: java boolean bufferedreader

嘿,我有以下方法,通过查看大型.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 个答案:

答案 0 :(得分:1)

在您的代码中,如果第一行不包含该单词,则会立即返回false。将其更改为仅在完成整个文件时返回false:

while ((str = in.readLine()) != null){
    if (str.equals(word)){
        return true;
    }
}
return false;