Ciao a tutti!
Ho questo compito da fare:
<<<Creare un archivio per memorizzare un'agenda telefonica>>>
Si richiede di memorizzare il cognome, il nome e il numero di telefono.
Il caricamento dei dati viene arrestato quando al posto del cognome
viene digitato'*'.
La memorizzazione dei dati viene effettuata su un file di testo in modo
da rendere visibile l'archivio con un programma di editazione dei testi.
Il cognome, il nome e il numero di telefono vengono memorizzati su
una riga di testo e ognuno viene separato con il carattere ';'
Ecco il mio codice:
Quando lo eseguo mi dà questo errore:codice:import java.io.IOException; import java.util.Scanner; import java.io.FileReader; import java.io.FileWriter; import java.io.PrintWriter; public class Agenda { String cognome[], nome[], numTel[]; int dim=100; int i; Scanner sc; void MemorizzoDati(){ for(i=0;i<dim;i++){ if("*".equals(cognome[i])){ SalvoNelFile(); } else{ System.out.print("Inserire il cognome: "); cognome[i]=sc.nextLine(); System.out.print("Inserire il nome: "); nome[i]=sc.nextLine(); System.out.print("Inserire il numero di telefono: "); numTel[i]=sc.nextLine(); } } } public void SalvoNelFile(){ FileWriter fileOut = null; PrintWriter fOut = null; try{ fileOut = new FileWriter("dati.txt"); fOut = new PrintWriter(fileOut); } catch(IOException e){ System.out.println(e); System.exit(1); } for(i=0; i<dim; i++){ fOut.print(cognome[i] + ";" + nome[i] + ";" + numTel[i]); fOut.println(); } fOut.flush(); try{ fileOut.close(); } catch(IOException e){ System.out.println(e); System.exit(1); } } void VizualizzaFile(){ try{ FileReader fileIn = new FileReader("dati.txt"); while(sc.hasNextLine()){ System.out.println(sc.nextLine()); } fileIn.close(); } catch(IOException e){ System.out.println(e); } } public class Main { public static void main(String[] args) { Agenda ag = new Agenda(); ag.MemorizzoDati(); ag.SalvoNelFile(); ag.VizualizzaFile(); } } }
Exception in thread "main" java.lang.NullPointerException
at agenda_telefonica.Agenda.MemorizzoDati(Agenda.java :40)
at agenda_telefonica.Main.main(Main.java:7)
Java Result: 1
Insomma, il mio problema è che non capisco come mettere la condizione qui, in modo tale che non mi dia l'errore:
Grazie a tutti in anticipo!codice:if("*".equals(cognome[i])){ SalvoNelFile(); } else{ System.out.print("Inserire il cognome: "); cognome[i]=sc.nextLine();
Jan


Rispondi quotando