从文本文件读取时出现Java空指针异常

从文本文件读取时出现Java空指针异常,java,file-io,nullpointerexception,Java,File Io,Nullpointerexception,我在读取文本文件时遇到问题,并且不断出现错误“java空指针异常” 我的读取文件类是 public class readfile { private Scanner x; public void openfile() { try { x = new Scanner(new File("test2.txt")); } catch(Exception e) { System.out.println("error"); } }

我在读取文本文件时遇到问题,并且不断出现错误“java空指针异常”

我的读取文件类是

public class readfile {
    private Scanner x;

public void openfile() {
    try {
        x = new Scanner(new File("test2.txt"));
    }
    catch(Exception e) {
        System.out.println("error");
    }
}

public void readfile() {
    while(x.hasNext()) {
        String a = x.next();
        String b = x.next();
        String c = x.next();

        System.out.printf("%s %s %s",a,b,c);
    }
}
我调用这些方法的主要类是

public class InputOut {

public static void main(String[] args) {
   readfile r = new readfile();
   r.openfile();
   r.readfile();
   r.closeFile();
   }

}
我在调用readfile异常时出错,因此我认为可能无法正确打开它?我将文件保存在程序运行的目录中,格式如下

50 issac billy
432 bryan darren
443 rob zombie

我在这里读文件时错过了什么吗。我导入了java.io*;类和java.util类。错误发生在
public void readfile()

只是一个快速猜测。。。你的代码是

while(x.hasNext()) {
    String a = x.next();
    String b = x.next();
    String c = x.next();

因此,您要检查是否存在一个元素(通过
hasNext()
)。检查总是一个好主意。但是,您应该只读取下一个元素(通过
next()
),不需要再次检查就可以进一步读取。

您还没有向我们显示哪行抛出NPE,这是关键。不,这不仅仅是关键,它是超关键的。请修复此问题。将整个异常(包括完整堆栈跟踪)添加到您的帖子中。此外,根据此问题最常见的原因,您经常在错误的位置查找文件。请在这个网站上搜索类似的问题,看看它是如何做到的,因为这是经常被问到的。与这个问题无关,但导入java.io.*并不是最好的主意。只要导入您使用的内容,您就会受益匪浅。请参阅以获取有关为什么的粗略解释。put
e.printStackTrace()
捕捉
块中。