初始化BufferedReader(JAVA)

时间:2013-10-01 12:32:02

标签: java nullpointerexception bufferedreader

我目前正在编写一个方法来测试输入字符串(密码)是否包含字典的一部分。字典是一个简单的txt文件,每行一个字。我现在想检查字典的每一行,如果它包含在输入字符串中。下面的代码对我有用:

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没有正确初始化。

有关如何解决此问题的任何建议?代码对我来说似乎很好,但我可能会忽略一个错误。

提前致谢,

Joe Cocker

1 个答案:

答案 0 :(得分:5)

你有两次调用readLine() - 内部调用可能返回null

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