gpt4 book ai didi

java - readLine()怎么会出现空指针异常呢?

转载 作者:行者123 更新时间:2023-12-01 06:53:09 25 4
gpt4 key购买 nike

我对 BufferedReader 类的 readLine() 感到困惑。我有以下代码:

BufferedReader ir=new BufferedReader(new InputStreamReader(httpConnection.getInputStream()));
StringBuffer sb=new StringBuffer();

while(ir.readLine()!=null){
String tmp=ir.readLine();
sb.append(tmp);
if(tmp!=null){
Log.i("recHtml", tmp);
}

代码按预期工作。但是,如果我们删除

        if(tmp!=null){

然后代码将得到一个空指针异常

        Log.i("recHtml", tmp);

我很困惑。我已经在 while 语句中检查过这一点,为什么仍然出现空指针错误?

最佳答案

while(ir.readLine()!=null){
//...
}

这已经读取了一行,所以当你想实际获取你检查的行时,你会得到下一行。在最后一种情况下,它为空,因为没有剩下其他行。

实际上应该使用为该检查定义的 hasNextLine 方法来完成检查:

while(ir.hasNextLine()){
//...
}

关于java - readLine()怎么会出现空指针异常呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19683431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com