2013-10-01 2 views
0

В настоящее время я пишу метод, который проверяет, содержит ли входная строка (пароль) часть словаря. Словарь представляет собой простой текстовый файл с одним словом в строке. Теперь я хочу проверить каждую строку словаря, если она содержится во входной строке. Приведенный ниже код должен работать для меня:Инициализация BufferedReader (JAVA)

public boolean dictionaryCheck(String pLine) 
{ 
    BufferedReader myReader; 
    String currentLine; 
    try 
    { 
    myReader = new BufferedReader(new FileReader("dict.txt")); 
    while(myReader.readLine() != null) 
    { 
     currentLine = myReader.readLine(); 
     if(pLine.contains(currentLine)) 
     { 
     return false; 
     } 
    } 
    } 
    catch (Exception e){System.out.println("Error: " + e);} 
    return true; 
} 

Проблема заключается в том, что, когда я запускаю метод с любым параметром String, я получаю следующее сообщение об ошибке:

Error: java.lang.NullPointerException

Так я предполагаю, что BufferedReader является не инициализирован правильно.

Любые предложения по устранению этого? Код мне кажется хорошим, но я могу упустить ошибку.

Спасибо заранее,

Джо Кокер

+0

вы можете добавить полную трассировку стека? – BobTheBuilder

ответ

5

У вас есть два вызова ReadLine() - внутренний вызов может быть возвращение нулевой

while((currentLine = myReader.readLine()) != null) 
{ 
    if(pLine.contains(currentLine)) 
    { 
    return false; 
    } 
} 
+0

Работал отлично, спасибо! –

Смежные вопросы