Java NullPointerException,即使对象存在

Java NullPointerException,即使对象存在,java,string,nullpointerexception,bufferedreader,Java,String,Nullpointerexception,Bufferedreader,我在一行中得到一个NullPointerException,我调用一个方法并传递一个字符串。我只能假设字符串为空 它是在几行之前从一个BufferedReaderreadline初始化的。以下是相关代码: FileInputStream tmp = null; try { tmp = new FileInputStream(file); } catch (FileNotFoundException e) { System.err.println("File not found!"

我在一行中得到一个
NullPointerException
,我调用一个方法并传递一个字符串。我只能假设字符串为空

它是在几行之前从一个
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);
    ...
错误是:

Exception in thread "main" java.lang.NullPointerException
       at enc.read(enc.java:40)
       at enc.main(enc.java:15)

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

空值检查本身会触发
空值异常
。而不是
!data.equals(null)
write
data!=空

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

!data.equals(null)
如果
data
null
,则将抛出
NullPointerException

替换为:

data != null

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

!data.equals(null)
如果
data
null
,则将抛出
NullPointerException

替换为:

data != null

如果非要我猜的话,我想问题出在:

while (!data.equals(null)) {
   process(data);
尝试将其更改为:

while (data != null) {
    process(data);
}

您不能从空对象调用方法。

如果我不得不猜测,我认为错误在于:

while (!data.equals(null)) {
   process(data);
尝试将其更改为:

while (data != null) {
    process(data);
}
无法从空对象调用方法。

,而(!data.equals(null))
毫无意义。如果
data
null
则不能对其调用
equals(..)

替换

while (!data.equals(null))

而(!data.equals(null))
毫无意义。如果
data
null
则不能对其调用
equals(..)

替换

while (!data.equals(null))


那么,哪一行是#40和#15?在哪里声明
数据
?(我猜这就是你的
null
string
null.method()
将触发任何实例方法的NullPointerException。请不要使用DataInputStream来读取文本。那么,哪一行是#40和#15?在哪里声明
数据
?(我猜这就是你的
null
string
null.method()
将触发任何实例方法的NullPointerException。请不要使用DataInputStream来读取文本。现在最大的问题是。。。谁是第一个?:)现在最大的问题是。。。谁是第一个?:)宾果,就是这样。问题是一行电话号码不见了,而且我睡眠不足。宾果,就是这样。问题是一行电话号码不见了,而且我睡眠不足。