Java 读取文本文件时出现NullPointerException

Java 读取文本文件时出现NullPointerException,java,arraylist,nullpointerexception,null,text-files,Java,Arraylist,Nullpointerexception,Null,Text Files,我创建了一个构造函数,它接受一个.txt文件名,并将其中的数据打印为ArrayList public class rrr { private String filename; public rrr(String afilename){ afilename=filename; } public void readdtata() throws IOException { FileReader p1=new FileReader(filename); Buff

我创建了一个构造函数,它接受一个.txt文件名,并将其中的数据打印为ArrayList

public class rrr {

  private String filename;

  public rrr(String afilename){
  afilename=filename;
  }
  public void readdtata() throws IOException  {
    FileReader p1=new FileReader(filename);
    BufferedReader p2=new BufferedReader(p1);
    ArrayList<String> data=new ArrayList<String>();
    String line;

    while((line=p2.readLine()) != null){
     data.add(line);
    }

    p2.close();

    for(int i=0;i<data.size();i++){
     System.out.println(data.get(i));
    }
  }
} 
公共类rrr{
私有字符串文件名;
公共rrr(字符串文件名){
afilename=文件名;
}
public void readdtata()引发IOException{
FileReader p1=新的FileReader(文件名);
BufferedReader p2=新的BufferedReader(p1);
ArrayList数据=新的ArrayList();
弦线;
而((line=p2.readLine())!=null){
数据。添加(行);
}
p2.关闭();

对于(int i=0;i,在你的构造函数中,我认为应该是:

public rrr(String afilename){
   this.filename = afilename;
}

在您的构造函数中,我认为应该是:

public rrr(String afilename){
   this.filename = afilename;
}

在您的构造函数中,我认为应该是:

public rrr(String afilename){
   this.filename = afilename;
}

在您的构造函数中,我认为应该是:

public rrr(String afilename){
   this.filename = afilename;
}

您需要学习如何调试NPE(NullPointerException)的一般概念。您应该仔细阅读异常的stacktrace,找到出现故障的代码行,即引发异常的代码行,然后仔细检查该行,找出哪个变量为null,然后追溯到代码中以了解原因。相信我,您会一次又一次地遇到这些问题。请注意,您的问题标题在编写时是不正确的实际上,在任何构造函数中都不读取文件。您需要学习如何调试NPE(NullPointerException)的一般概念。您应该仔细阅读异常的stacktrace,找到出现故障的代码行,即引发异常的代码行,然后仔细检查该行,找出哪个变量为null,然后追溯到代码中以了解原因。相信我,您会一次又一次地遇到这些问题。请注意,您的问题标题在编写时是不正确的实际上,在任何构造函数中都不读取文件。您需要学习如何调试NPE(NullPointerException)的一般概念。您应该仔细阅读异常的stacktrace,找到出现故障的代码行,即引发异常的代码行,然后仔细检查该行,找出哪个变量为null,然后追溯到代码中以了解原因。相信我,您会一次又一次地遇到这些问题。请注意,您的问题标题在编写时是不正确的实际上,在任何构造函数中都不读取文件。您需要学习如何调试NPE(NullPointerException)的一般概念。您应该仔细阅读异常的stacktrace,找到出现故障的代码行,即引发异常的代码行,然后仔细检查该行,找出哪个变量为null,然后追溯到代码中以了解原因。相信我,您会一次又一次地遇到这些问题。请注意,您的问题标题在编写时是不正确的事实上,在任何构造函数中都没有读取任何文件。你忘记了
这个
。我已经编辑了你的答案来提供它。但是很好的提示——他的构造函数没有正确设置类字段。1+你忘了
这个
。我编辑了你的答案来提供它。但是很好的提示——他的构造函数没有设置类字段直接。1+你忘记了
这个
。我已经编辑了你的答案来提供它。但是很好的提示——他的构造函数没有正确设置类字段。1+你忘记了
这个
。我编辑了你的答案来提供它。但是很好的提示——他的构造函数没有正确设置类字段。1+