空指针异常,即使在检查条件之后也是如此



以下是代码:

File tempFile = new File("myTempFile.txt");
tempFile.createNewFile();
File inputFile = new File("Friend_list.txt");
BufferedReader reader = new BufferedReader(new FileReader(inputFile));

String currentLine;
while((currentLine = reader.readLine()) != null)
{
String trimmedLine;
trimmedLine = currentLine.trim();
}

在代码的这一部分中,有一个NullPointerException。具体的例外情况如下:

Exception in thread "main" java.lang.NullPointerException: Cannot invoke 
"String.trim()" because "currentLine" is null at com.company.Main.delete(Main.java:167)
at com.company.Main.main(Main.java:48)

问题是如果字符串为null,那么它如何进入while循环?我交叉检查了文件,文件中有数据,那么它怎么可能是空的?

我认为这是您问题的实际原因。(基于你不恰当地发布为"答案"的代码,现已删除。(

currentLine = reader.readLine();
trimmedLine = currentLine.trim();

请注意,在>gt;那些<lt;语句,在调用trim()之前,您不是在测试null

  1. 问题中的代码不是导致问题的代码
  2. 你的诊断是有问题的,因为(大概(你没有注意堆栈中的行号

最新更新