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:
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();
}
}
}
Quando lo eseguo mi dà questo errore:
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:
codice:
if("*".equals(cognome[i])){
SalvoNelFile();
}
else{
System.out.print("Inserire il cognome: ");
cognome[i]=sc.nextLine();
Grazie a tutti in anticipo! 
Jan