Memoria che resta
Quando il programma termina, tutte le variabili (e gli array, e gli ArrayList) spariscono: sono nella RAM, volatile. Un file e' salvato su disco e resta: lo puoi rileggere domani, condividerlo, aprirlo con Excel. Per questo la verifica chiede di salvare i risultati su file.
PrintWriter e Scanner
Per scrivere si usa PrintWriter (come un println verso il file). Per leggere, lo Scanner riga per riga. Tutto dentro throws IOException (o try/catch), e si chiude sempre il file.
Scrivere
Leggere
Lo split e il CSV
Un file CSV ha i campi di ogni riga separati da un carattere (qui il punto e virgola ;, come chiede la verifica). Per spezzare una riga nei suoi campi si usa split, che restituisce un array di String. Poi si convertono i numeri con Double.parseDouble o Integer.parseInt.
Scanner in = new Scanner(new File("voti.csv")); double somma = 0; int n = 0; while (in.hasNextLine()) { String[] campi = in.nextLine().split(";"); // spezza la riga sui ';' somma += Double.parseDouble(campi[1]); // campo 1 = voto n++; } in.close(); System.out.println("Media: " + (somma / n));
Output formattato
Per generare il CSV richiesto dalla verifica: prima l'intestazione, poi una riga per ogni elemento. Con String.format("%.2f", x) si forza il numero a due decimali.
Esercizi su file di testo e CSV ↓