首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NullPointerException和BufferedReader

NullPointerException和BufferedReader
EN

Stack Overflow用户
提问于 2015-03-13 23:08:16
回答 2查看 2.4K关注 0票数 0

我的程序一直向我抛出nullPointerException,我不知道为什么。我想可能是因为bufferedReader的原因,但我不确定。

代码语言:javascript
复制
String line = reader.readLine();
while (!line.isEmpty()) {
    line = repairLine(line);
    tree.add(line);
    line = reader.readLine();
}

是的,它被包装在try - catch块中。它说问题在while-line上。它不适用于"if (line != null)“。我真的不知道是什么导致了这种情况。谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2015-03-13 23:13:01

问题似乎出在以下几行代码中:

代码语言:javascript
复制
String line = reader.readLine();
while (!line.isEmpty()) {   

}

如果没有要从文件中读取的内容,则line将为null。因此while循环中的异常。您正在尝试调用空引用上的方法。

也就是说,从文件中读取行的传统方法是将读取的行分配给while条件本身中的一个变量(未测试的代码):

代码语言:javascript
复制
String line = "";
while ((line=reader.readLine()!=null) && !line.isEmpty()) {
    line = repairLine(line);
    tree.add(line);
}
票数 4
EN

Stack Overflow用户

发布于 2021-04-18 04:11:52

我也遇到过同样的错误,这意味着连接的另一个客户端上的套接字正在关闭,而它正在尝试读取服务器上的数据。

为了添加一些上下文,我正在运行一台服务器,并且各种客户端都通过java套接字连接到它。当客户端关闭套接字时,我在服务器端遇到了这个错误。

因此,为了解决这个问题,我决定在每次连接后同时关闭服务器端和客户端的套接字。我这样做的方式是在客户端关闭之前,它在关闭套接字之前向服务器发送"quit“消息。当服务器读取“退出”消息时,它也将关闭其套接字。

例如:

  • 客户端

代码语言:javascript
复制
if(Quit){
   if(mySocket != null && !mySocket.isClosed()) {
        output.println("quit");
        output.flush();
        
        try {
            mySocket.close();
        } catch (IOException e) {
            System.out.println("Close net variables exception - " + e.getMessage());
        }
    }
}

  • 服务器端

代码语言:javascript
复制
String line = input.readLine(); //Thread stops here untill it reads something

if(line.equals("something")){
   do_something();
else if(line.equals("quit")){
   try {
        mySocket.close();
    } catch (IOException e) {
        System.out.println("Close net variables exception - " + e.getMessage());
    }
else{
   do_default();
}

对我很管用,希望对我有帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29035681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档