package lezione14; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.time.LocalDate; public class Esercizio1lezione12 { public static void main(String[] args) { /* * Inializzazione dati da file */ String[] dati; Registro registro = new Registro(); String[] studente; String[] esami; String[] esame; try (BufferedReader br = new BufferedReader(new FileReader("src/lezione14/e1l12data.txt"))) { // apro una risorsa String line = br.readLine(); // leggo una linea alla volta while (line != null) { // finche' c'e' qualcosa da leggere dati = line.split(":"); System.out.println(line); studente = dati[0].split(" "); if (dati.length > 1) { // perche'? registro.aggiungiStudente(studente[0].trim(), studente[1].trim()); esami = dati[1].split(";"); for (String e : esami) { if (!e.trim().isEmpty()) { // perche'? System.out.println(e); esame = e.split(","); registro.aggiungiEsame(studente[0].trim(), studente[1].trim(), esame[0].trim(), Integer.parseInt(esame[1].trim()), LocalDate.parse(esame[2].trim())); } } } line = br.readLine(); // leggo la prossima linea } } catch (FileNotFoundException e) { // il file non esiste (occhio ai percorsi) e.printStackTrace(); } catch (IOException e) { // il file non e' leggibile, scrivibile, altri errori generici e.printStackTrace(); } registro.visualizzaDati(); /* * Elaborazione e scrittura risultati su file */ String nome; String cognome; try (PrintWriter pw = new PrintWriter(new FileWriter("src/lezione14/e1l12risultati.txt"))) { /* * Funzionalita' media voti globale */ pw.println("Media di tutti gli studenti: " + registro.calcolaMedia()); // scrivo la stringa su file /* * Funzionalita' media voti studente */ for (String s : registro.getStudenti().keySet()) { nome = registro.getStudenti().get(s).getNome(); cognome = registro.getStudenti().get(s).getCognome(); pw.println("Media di: " + nome + " " + cognome + ": " + registro.calcolaMedia(nome, cognome)); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }