mi da quest'eccezione e non capisco perchèèè sto impazzendo. dove sbaglio???
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.text.ParseException;
import java.util.Hashtable;
import java.util.Scanner;
public class GestoreLaboratorio {
static Hashtable <String, Paziente> pazienteTable;
static Hashtable <String, Esame> esameTable;
public static void main(String[] args) throws ParseException, IOException {
loadPaziente();
loadEsame();
Scanner in=new Scanner(System.in);
int scelta;
do{
System.out.println("quale operazione vuoi effettuare?");
scelta=Integer.parseInt(in.nextLine());
switch(scelta){
case 1://data una data stampa tutti gli esami eseguiti con la relativa quantità.
System.out.println("inserisci una data:");
String data=in.nextLine();
esamiInUnaData(data);
break;
case 2://dato un nome di un paziente stampare tutte le analisi effettuate + data.
System.out.println("inserisci nome paziente");
String nome=in.nextLine();
System.out.println("inserisci cognome paziente");
String cognome=in.nextLine();
esamiPaziente(nome,cognome);
break;
case 3://dato un nome di esame e una data stampa tutti i pazienti che hanno eseguito
//quell'esame in quella data.
System.out.println("inserisci il nome di un esame:");
String nome2=in.nextLine();
System.out.println("inserisci una data di un esame:");
String data2=in.nextLine();
DatoEsameEData(nome2, data2);
break;
}
}
while(scelta!=5);
in.close();
}
private static void esamiInUnaData(String data){
for (Esame e: esameTable.values()){
int somma=0;
if((data.equals(e.getDataEsame())))
System.out.println(e);
somma++;
System.out.println(somma);
}
}
private static void esamiPaziente(String nome, String cognome){
for(Paziente p: pazienteTable.values()){
if((nome.equalsIgnoreCase(p.getNome())) &&
(cognome.equalsIgnoreCase(p.getCognome())))
for(Esame e: esameTable.values()){
if((p.getCodiceFiscale().equalsIgnoreCase(e.getCod iceFiscaleEsame())))
System.out.println(e.getDataEsame());
}
}
}
private static void DatoEsameEData(String nome2, String data2){
for(Esame e: esameTable.values()){
if ((nome2.equalsIgnoreCase(e.getNomeEsame()))&&
(data2.equalsIgnoreCase(e.getDataEsame())))
for(Paziente p: pazienteTable.values())
System.out.println(p);
}
}
private static void loadPaziente() throws ParseException, IOException{
String percorso=("C:\\Users\\Utente\\Desktop\\File\\pazie ntefile.txt");
File pazientefile=new File(percorso);
FileReader fr=new FileReader(pazientefile);
Scanner in=new Scanner(fr);
while(in.hasNextLine()){
String codiceFiscale=in.nextLine();
String nome=in.nextLine();
String cognome=in.nextLine();
String dataNascita=in.nextLine();
String luogoNascita=in.nextLine();
Paziente p=new Paziente();
p.setCodiceFiscale(codiceFiscale);
p.setNome(nome);
p.setCognome(cognome);
p.setDataNascita(dataNascita);
p.setLuogoNascita(luogoNascita);
pazienteTable.put(codiceFiscale, p); //qui mi da l'eccezione
}
fr.close();
}
private static void loadEsame() throws FileNotFoundException, ParseException{
String percorso=("C:\\Users\\Utente\\Desktop\\File\\esame file.txt");
File esamefile=new File(percorso);
FileReader fr=new FileReader(esamefile);
Scanner in=new Scanner(fr);
while(in.hasNextLine()){
String codiceFiscaleEsame=in.nextLine();
String nomeEsame=in.nextLine();
String dataEsame=in.nextLine();
Esame e=new Esame();
e.setCodiceFiscaleEsame(codiceFiscaleEsame);
e.setNomeEsame(nomeEsame);
e.setDataEsame(dataEsame);
esameTable.put(codiceFiscaleEsame, e);
}
}
}