我在Java中得到NullPointerException

我在Java中得到NullPointerException,java,nullpointerexception,Java,Nullpointerexception,你好,我在这个程序中得到了NullPointerException,你能帮我吗?Author类具有私有属性和getter setter方法。Fileoperations类读取文件并使用stringtokenizer逐行拆分。我在“athr[0].setId(tempId);”行中遇到错误。当我从文件中读取时,tempId等于100。我想问题出在自动驾驶课上,但我无法解决 作者 文件操作 导入java.io.BufferedReader; 导入java.io.FileNotFoundExcepti

你好,我在这个程序中得到了NullPointerException,你能帮我吗?Author类具有私有属性和getter setter方法。Fileoperations类读取文件并使用stringtokenizer逐行拆分。我在“athr[0].setId(tempId);”行中遇到错误。当我从文件中读取时,tempId等于100。我想问题出在自动驾驶课上,但我无法解决

作者 文件操作
导入java.io.BufferedReader;
导入java.io.FileNotFoundException;
导入java.io.FileReader;
导入java.io.IOException;
导入java.util.StringTokenizer;
公共类文件操作{
作者athr[]=新作者[500];
int athCtr=0;
int标志=0;
字符串温度;
int tempId;
public void strAthr(字符串路径)引发IOException{
字符串metin=“Suheyb”;
System.out.println(路径);
FileReader fl=新的FileReader(路径);
try(BufferedReader read=新的BufferedReader(fl)){
while(metin!=null){
metin=read.readLine();
if(metin!=null){
StringTokenizer str=新的StringTokenizer(metin,“/t”);
if(str.hasMoreTokens()){
temp=str.nextToken();
tempId=Integer.parseInt(str.nextToken());
System.out.println(tempId+“”+athCtr);
如果(athCtr!=0){
对于(int i=0;ipublic class Author {

    private int id;
    private String name;
    private String univ;
    private String depart;
    private String email;
    private String article[] = new String[5];
    private int artCtr=0;

    public int getArtCtr() {
        return artCtr;
    }

    public void setArtCtr(int artCtr) {
        this.artCtr = artCtr;
    }

    FileOperations flp =new FileOperations();

    public String getArticle(int nmb) {
        return article[nmb];
    }

    public void setArticle(String article,int nmb) {
        this.article[nmb] = article;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getUniv() {
        return univ;
    }

    public void setUniv(String univ) {
        this.univ = univ;
    }

    public String getDepart() {
        return depart;
    }

    public void setDepart(String depart) {
        this.depart = depart;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }



}
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;

public class FileOperations {

    Author athr[] = new Author[500];
    int athCtr = 0;
    int flag = 0;
    String temp;
    int tempId;

    public void strAthr(String path) throws IOException {
        String metin = "Suheyb";
        System.out.println(path);
        FileReader fl = new FileReader(path);

        try (BufferedReader read = new BufferedReader(fl)) {

            while (metin != null) {
                metin = read.readLine();
                if (metin != null) {
                    StringTokenizer str = new StringTokenizer(metin, "/t ");

                    if (str.hasMoreTokens()) {
                        temp = str.nextToken();
                        tempId = Integer.parseInt(str.nextToken());
                        System.out.println(tempId + " " + athCtr);

                        if (athCtr != 0) {
                            for (int i = 0; i < athCtr; i++) {
                                if (athr[i].getId() == tempId) {
                                    flag = 1;
                                    if (str.hasMoreTokens()) {
                                        athr[i].setName(str.nextToken());
                                        if (str.hasMoreTokens()) {
                                            athr[i].setDepart(str.nextToken());
                                            if (str.hasMoreTokens()) {
                                                athr[i].setEmail(str
                                                        .nextToken());
                                                if (str.hasMoreTokens()) {
                                                    athr[i].setArticle(
                                                            str.nextToken(), 0);
                                                    athr[i].setArtCtr(1);
                                                    if (str.hasMoreTokens()) {
                                                        athr[i].setArticle(
                                                                str.nextToken(),
                                                                1);
                                                        athr[i].setArtCtr(2);
                                                        if (str.hasMoreTokens()) {
                                                            athr[i].setArticle(
                                                                    str.nextToken(),
                                                                    2);
                                                            athr[i].setArtCtr(3);
                                                            if (str.hasMoreTokens()) {
                                                                athr[i].setArticle(
                                                                        str.nextToken(),
                                                                        3);
                                                                athr[i].setArtCtr(4);
                                                                if (str.hasMoreTokens()) {
                                                                    athr[i].setArticle(
                                                                            str.nextToken(),
                                                                            4);
                                                                    athr[i].setArtCtr(5);
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }

                            if (flag != 0) {
                                flag = 0;
                                athr[athCtr].setId(tempId);
                                if (str.hasMoreTokens()) {
                                    athr[athCtr].setName(str.nextToken());
                                    if (str.hasMoreTokens()) {
                                        athr[athCtr].setDepart(str.nextToken());
                                        if (str.hasMoreTokens()) {
                                            athr[athCtr].setEmail(str
                                                    .nextToken());
                                            if (str.hasMoreTokens()) {
                                                athr[athCtr].setArticle(
                                                        str.nextToken(), 0);
                                                athr[athCtr].setArtCtr(1);
                                                if (str.hasMoreTokens()) {
                                                    athr[athCtr].setArticle(
                                                            str.nextToken(), 1);
                                                    athr[athCtr].setArtCtr(2);
                                                    if (str.hasMoreTokens()) {
                                                        athr[athCtr]
                                                                .setArticle(
                                                                        str.nextToken(),
                                                                        2);
                                                        athr[athCtr]
                                                                .setArtCtr(3);
                                                        if (str.hasMoreTokens()) {
                                                            athr[athCtr]
                                                                    .setArticle(
                                                                            str.nextToken(),
                                                                            3);
                                                            athr[athCtr]
                                                                    .setArtCtr(4);
                                                            if (str.hasMoreTokens()) {
                                                                athr[athCtr]
                                                                        .setArticle(
                                                                                str.nextToken(),
                                                                                4);
                                                                athr[athCtr]
                                                                        .setArtCtr(5);
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                                athCtr++;

                            }

                        }

                        else {
                            System.out.println(tempId);
                            athr[0].setId(tempId);
                            System.out.println(athr[0].getId());
                            if (str.hasMoreTokens()) {

                                athr[athCtr].setName(str.nextToken());
                                if (str.hasMoreTokens()) {
                                    athr[athCtr].setDepart(str.nextToken());
                                    if (str.hasMoreTokens()) {
                                        athr[athCtr].setEmail(str.nextToken());
                                        if (str.hasMoreTokens()) {
                                            athr[athCtr].setArticle(
                                                    str.nextToken(), 0);
                                            athr[athCtr].setArtCtr(1);
                                            if (str.hasMoreTokens()) {
                                                athr[athCtr].setArticle(
                                                        str.nextToken(), 1);
                                                athr[athCtr].setArtCtr(2);
                                                if (str.hasMoreTokens()) {
                                                    athr[athCtr].setArticle(
                                                            str.nextToken(), 2);
                                                    athr[athCtr].setArtCtr(3);
                                                    if (str.hasMoreTokens()) {
                                                        athr[athCtr]
                                                                .setArticle(
                                                                        str.nextToken(),
                                                                        3);
                                                        athr[athCtr]
                                                                .setArtCtr(4);
                                                        if (str.hasMoreTokens()) {
                                                            athr[athCtr]
                                                                    .setArticle(
                                                                            str.nextToken(),
                                                                4);
                                                athr[athCtr]
                                                        .setArtCtr(5);
                                            }
                                        }
                                    }
                                }


enter code here

        }
                                    }
                                }
                            }
                            athCtr++;
                        }
                    }
                }
            }
        }
    }

}
   for(int z=0;z<athr.length;z++){
     athr[z]=new Author();
   }
Author athr[] = new Author[500];
{null, null, null.... null} // From 0 to 500.
athr[32] = new Author();
    Author a= new Author(); 
    a.setName("bro");
    a.setId(123);
    arthr[0]=a; // you have an element in the first Index!
               // now, you want to initialize all
    for(int i=0; i< arthr.length; i++){
      arthr[i] =new Author();
      arthr[i].setName("bro");//you can set and get names, id's etc
}
for(int z=0;z<athr.length;z++){
     athr[z]=new Author();
   }
List<Author> authList = ArrayList<>();
Author author = null;
Reader in = new FileReader("book.csv");
    Iterable<CSVRecord> records = CSVFormat.DEFAULT.parse(in);
    for (CSVRecord record : records) {
        author = new Author();
        author.setAuthor(record.get(0));
        author.setTitle(record.get(1));
        authList.add(author);
    }