Ciao a tutti,sono alle prese con questo esercizio,una rubrica che memorizza i contatti su un filetxt quindi scrittura e lettura da file e poi lo da il problema è nell'esecuzione perche devo inserire dei programmi solo che non so come scriverli e quali sono qualcuno potrebbe aiutarmi?!



codice:
Rubrica1



public class Rubrica1
{ 
  
    String cognome;
    String nome;
    int telefono;
    boolean flag;

  public Rubrica1()//costr snz paramentri
  {
    String cognome;
    String nome;
    int telefono;
    boolean flag=false;
  }
  public Rubrica(String a,String b,int c)
  {
    nome=a;
    cognome=b;
    telefono=c;
    flag=true;
    
  }
 
   public String getNome()
    {
      return nome;
   
    }
    public String getCognome()
     {
      return cognome;
      }
    public int  getTelefono()
    {
    return telefono;  
    }  
    public boolean getFlag()
    {
    return flag;
    }
    public static  boolean controllanome(String no)
  {
        return no.matches("[AZ] [a-zA-Z]*");
    
   
  }
    public static boolean controllacognome(String co)
 {
   return co.matches("[a-zA-Z]+(['-][a-zA-Z]+)+");
 }
public static boolean controllatelefono(String te)
  {
  return te.matches("\\d {10}");
  
  
}}
codice:
rubricatest



import java.util.*;
import java.io.*;

public class RubricaTest
{
public static void main (String[] args)
{
Rubrica1 array[]= new Rubrica1 [100];
Scanner input=new Scanner(System.in);
int pos=0;
boolean entra=false;

for(int i=0;i<array.length;i++)
  
  array[i]=new Rubrica1();
    
while(!entra)
{
System.out.printf("Digita 1 per creare un nuovo contatto,2per trovare un contatto,3per uscire dalla Rubrica");
int scelta =input.nextInt();
while( scelta>3 || scelta <1)
{
System.out.printf("Hai inserito un numero non valido");
  scelta=input.nextInt();
}
switch(scelta)
{
case 1:
  System.out.printf("Inserire il nome del contatto desiderato:\n");
  String no=input.nextLine();
  System.out.printf("Inserire il cognome del contatto desiderato:\n");
  String co=input.nextLine();
  System.out.printf("Inserire il numero di telefono del contatto desiderato:\n");
  String te=input.nextLine();
//da cont

  System.out.printf("\nInserimento in corso....\n");
  if (!Rubrica1.conmtrollanome(no))
  System.out.println("Nome non corretto o troppo lungo");
  else if (!Rubrica1.controllacognome(co))
  System.out.println("Cognome non corretto o troppo lungo");
  else if (!Rubrica1.controllatelefono(te))
                  
array[pos]=new Rubrica1(no, co, te);
if(pos<=99)
  pos++;
break;
case 2:
  System.out.printf("Inserisci il nome del contatto da cercare");
  String nom=in.nextLine();    
  for (int i=0; i<array.length; i++)
  if (array[i].getflag && array[i].nome.equals(nom))
  System.out.printf("I dati del contatto sono"+ array[i].nome + array[i].cognome + array[i].telefono + "\n"  );
  else 
  System.out.printf("Il contatto non è presente nella rubrica");
                break;
        case 3:
                entra=true;
                System.exit(1);
                break;
       }
     }
     stampa();
   }  
   public static void stampa()
  {
    try{
    FileWriter file=new FileWriter ("elenco.txt");
    Printwriter out=new Printwriter (file);
    
    for(int i=0; i<array.length;i++)
    out.print(array[i].nome + array[i].cognome + array[i].telefono +  "\n");
      
    }
    catch(IOException e) 
    {
      System.out.println("Errore" + e);
    }
    finally
    {
      out.close();
    }
  }
}