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