Originariamente inviato da Kaamos
Il problema (anche se si sarebbe verificato anche in quelle successive) come vedevi dall'errore stava alla riga:

codice:
cognome[i]=sc.nextLine();
Se ti dava NullPointerException uno dei due non era istanziato, e se non è zuppa è pan bagnato.
Ho corretto l'errore. Però ho un'altro piccolo, di logica. Quando vado ad eseguire il programma, questo metodo ... fa un ciclo infinito chiedendomi sempre - cognome, nome, numero di telefono, cognome, nome ... ecc :

codice:
void MemorizzoDati(){
        for(i=0;i<dim;i++){
            System.out.print("Inserire il cognome: ");
            cognome[i]=sc.nextLine();
            if("*".equals(cognome[i])){
                SalvoNelFile();
            }
            System.out.print("Inserire il nome: ");
            nome[i]=sc.nextLine();
            System.out.print("Inserire il numero di telefono: ");
            numTel[i]=sc.nextLine();
            }
        }
Non saprei come far sì che se il cognome prendesse in ingresso il pezzo di stringa "*", uscisse automaticamente dal metodo e richiamasse SalvoNelFile(); per far memorizzare subito i dati nel file di testo. Quello che ho fatto, in teoria dovrebbe funzionare, ma non funziona. Forse mi consigliate qualche altro ciclo(per esempio: "while" o "do/while"). Non so, prima avevo provato con do/while, ma mi dava errori.
Grazie!