我目前正在编写一种方法来测试输入的String(密码)是否包含字典的一部分。字典是一个简单的txt文件,每行一个单词。现在,我想检查字典的每一行是否包含在输入String中。下面的代码应该为我工作:

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

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

提前致谢,

乔库克

最佳答案

您有两次调用readLine()的方法-内部调用可能返回null

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

关于java - 初始化BufferedReader(JAVA),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19116252/

10-09 09:45