无法修复Java中的空指针异常
我已经看了这个问题,并遵循了答案。但是编译器仍然在抱怨空指针异常。以下是我的代码块,说明编译器在哪里抱怨:无法修复Java中的空指针异常,java,Java,我已经看了这个问题,并遵循了答案。但是编译器仍然在抱怨空指针异常。以下是我的代码块,说明编译器在哪里抱怨: public class readLogger { DLQPush dlqPush = new DLQPush(); public String values[]; int condition = 2; public BufferedReader reader = null; public void readFile() { try {
public class readLogger {
DLQPush dlqPush = new DLQPush();
public String values[];
int condition = 2;
public BufferedReader reader = null;
public void readFile() {
try {
reader = new BufferedReader(new FileReader(
"/var/tmp/checkresults.log"));
} catch (FileNotFoundException e) {
System.err.println("ERROR: FILE NOT FOUND!\n");
}
String str = null;
try {
while ((str = reader.readLine()) != null) {
if (str.trim().length() == 0) {
continue;
}
values = str.split("\t");
System.out.println(values[1] + values[2]);
classifyStatus();
}
} catch (IOException e) {
e.printStackTrace();
}
}
编译器特别抱怨这一行:
while ((str = reader.readLine()) != null) {
这是我的主要课程:
import java.io.IOException;
//import org.dcm4che3.tool.storescu.*;
public class Main {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) {
readLogger rLog = new readLogger();
rLog.readFile();
}
}
我已经对前面问题的链接中描述的问题进行了必要的修复,但我的编译器仍然对此表示不满:
ERROR: FILE NOT FOUND!
Exception in thread "main" java.lang.NullPointerException
at readLogger.readFile(readLogger.java:25)
at Main.main(Main.java:13)
不要担心这个错误,因为我已经将它导出到一个JAR文件,并将它放在Linux中,但它仍然在Linux中抛出一个空指针。有人知道如何修复空指针异常吗?在语句:
中调用readLine
时((str=reader.readLine())!=null){
,因为找不到文件(请参阅您自己的打印语句),所以reader
变量是null
因此,通过调用null
BufferedReader
引用上的readLine
,可以抛出NullPointerException
这里的最佳实践是,如果找不到文件,则停止执行readFile
方法
或者,在调用
读取器
变量上的实例方法之前,您可能希望至少检查null
。如果您向我们指出哪一行是第25行,这将很有帮助。我已经更新了它,抱歉,没有发现错误?但您的异常似乎来自这里。str=reader.readLine()而(str!=null)而不是while((str=)!=null){,告诉我们区别你知道,这个网站的投票过程糟透了!我把它改成了,public BufferedReader reader;但它仍然声明了相同的错误..是的。还要提到执行在第一个catch语句之后继续。他可能应该删除它。@ryekayo:那是因为文件不在那里。