Exorikos
Legacy Member
Ik ben me aan het voorbereiden op mijn examen BVP van morgen en wou mijn code eens testen. Nu geeft hij een nullpounterexception waar ik niet aan uit kan.
De errors zijn:
Exception in thread "main" java.lang.NullPointerException
at Test.<init>(Test.java:22)
at Test.main(Test.java:60)
Ik heb nagekeken dat die stamnummer een int is, en hij zet die dus mooi om van string naar int. Waarom komt die NullPointerException dan?
Code:
import java.io.*;
public class Test {
private Student[] studenten;
public Test(){
studenten = new Student[20];
try{
BufferedReader inputStream = new BufferedReader(new FileReader("C:/Documents and Settings/Stijn/Mijn documenten/studenten.txt"));
String line = "";
boolean klaar = false;
int a = 0;
while(klaar == false){
line = inputStream.readLine();
if(line == null){
klaar = true;
} else{
int i = line.indexOf(";");
int j;
studenten[a].setStamNummer(Integer.parseInt(line.substring(0,i)));
i = line.indexOf("/");
studenten[a].setGeboorteDag(Integer.parseInt(line.substring(i-1,i)));
i = line.indexOf("/",i+2);
studenten[a].setGeboorteMaand(Integer.parseInt(line.substring(i-1,i)));
i = line.indexOf("/",i+2);
studenten[a].setGeboorteJaar(Integer.parseInt(line.substring(i-3,i)));
i = line.indexOf(";",i+2);
j = line.indexOf(" ",i+2);
studenten[a].setVoorNaam(line.substring(i+2,j));
i = line.indexOf(";",i+2);
studenten[a].setAchterNaam(line.substring(j+2,i));
i = line.indexOf(";",i+2);
studenten[a].setGeslacht(line.charAt(i+2));
i = line.indexOf(";",i+2);
j = line.indexOf(";",i+2);
studenten[a].setStudieRichting(line.substring(i+2,j+2));
i = j;
studenten[a].setStudieJaar(Integer.parseInt(line.substring(i+1)));
a++;
i = 0;
j = 0;
klaar = false;
}
}
inputStream.close();
}
catch(FileNotFoundException e){
System.out.println("file not found");
}
catch(IOException e){
System.out.println("ioexception");
}
}
/**
* @param args
*/
public static void main(String[] args) {
new Test();
}
public String getStudieRichting(String richting){
String studierichting;
if(richting.equalsIgnoreCase("fysica")){
studierichting = "Fysica";
}
else{ if(richting.equalsIgnoreCase("lichamelijke opvoeding")){
studierichting = "Lichamelijke Opvoeding";
} else{
studierichting = null;
System.out.println("Foute richting");
}
}
return studierichting;
}
}
Code:
/**
*
* @author Stijn
*
*/
public class Student {
private int stamnummer;
private int geboortedag;
private int geboortemaand;
private int geboortejaar;
private String voornaam;
private String achternaam;
private char geslacht;
private String studierichting;
private int studiejaar;
public Student(){
}
public void setStamNummer(int nr){
stamnummer = nr;
}
public void setGeboorteDag(int dag){
geboortedag = dag;
}
public void setGeboorteMaand(int maand){
geboortemaand = maand;
}
public void setGeboorteJaar(int jaar){
geboortejaar = jaar;
}
public void setVoorNaam(String naam){
voornaam = naam;
}
public void setAchterNaam(String naam){
achternaam = naam;
}
public void setGeslacht(char geslacht){
this.geslacht = geslacht;
}
public void setStudieRichting(String richting){
studierichting = richting;
}
public void setStudieJaar(int jaar){
studiejaar = jaar;
}
public int getStamNummer(){
return stamnummer;
}
public int getGeboorteDag(){
return geboortedag;
}
public int getGeboorteMaand(){
return geboortemaand;
}
public int getGeboorteJaar(){
return geboortejaar;
}
public String getVoorNaam(){
return voornaam;
}
public String getAchterNaam(){
return achternaam;
}
public char getGeslacht(){
return geslacht;
}
public String getStudieRichting(){
return studierichting;
}
public int getStudieJaar(){
return studiejaar;
}
}
De errors zijn:
Exception in thread "main" java.lang.NullPointerException
at Test.<init>(Test.java:22)
at Test.main(Test.java:60)
Ik heb nagekeken dat die stamnummer een int is, en hij zet die dus mooi om van string naar int. Waarom komt die NullPointerException dan?
