Java NullPointerException即使对象存在

gos*_*kel 1 java string nullpointerexception bufferedreader

我正在NullPointerException调用方法并将其传递给字符串.我只能假设字符串为null.

BufferedReader之前几行从readline 初始化.这是相关的代码:

FileInputStream tmp = null;
try {
    tmp = new FileInputStream(file);
} catch (FileNotFoundException e) {
    System.err.println("File not found!");
    e.printStackTrace();
    System.exit(1);
}
DataInputStream dis = new DataInputStream(tmp);
BufferedReader br = new BufferedReader(new InputStreamReader(dis));

create();

try {
    data = br.readLine();
} catch (IOException e) {
    System.err.println("First readline failed: " + e);
    System.exit(1);
}
while (!data.equals(null)) {
    process(data);
    ...
Run Code Online (Sandbox Code Playgroud)

和错误:

Exception in thread "main" java.lang.NullPointerException
       at enc.read(enc.java:40)
       at enc.main(enc.java:15)
Run Code Online (Sandbox Code Playgroud)

C-O*_*tto 8

您的空值检查本身会触发NullPointerException.而不是!data.equals(null)data != null.


ben*_*y23 6

在不知道行号的情况下,我怀疑以下是罪魁祸首:

!data.equals(null)
Run Code Online (Sandbox Code Playgroud)

如果datanull,那么NullPointerException将抛出一个.

替换为:

data != null
Run Code Online (Sandbox Code Playgroud)