ho 2 classi, una Cliente (di una compagnia telefonica) ed una ArchivioTelefonico.
La compagnia telefonica salva i dati relativi ai suoi clienti in un file clienti.dat.
Il mio intento è quello di fornire la classe ArchivioTelefonico di un metodo che riempia una HashMap di Clienti e la classe Cliente di un metodo read per leggere le info dal file.. Ma mi viene lanciata un' eccezione:
Codice PHP:
//costruttore della classe ArchivioTelefonico
public ArchivioTelefonico(String fileClienti) throws IOException
{
clienti = new HashMap<Integer, Cliente>();
chiamate = new HashMap<Integer, Chiamata>();
FileReader reader = new FileReader(fileClienti);
Scanner scan = new Scanner(reader);
this.readClienti(scan);
}
private void readClienti(Scanner scan) throws IOException
{
Cliente c = Cliente.read(scan);
while (c != null)
{
clienti.put(new Integer(c.hashCode()), c);
c = Cliente.read(scan);
}
}
La classe Cliente invece definisce cosi il metodo statico read:
Codice PHP:
public static Cliente read(Scanner scan) throws IOException, NumberFormatException
{
if (!scan.hasNextLine()) return null;
return new Cliente(scan.nextLine(), scan.nextLine(), scan.nextLine(), scan.nextLine());
}
Con un pò di stampe a video sono risalito al problema ed ho visto che praticamente il metodo read di Cliente ritorna un cliente null perché i diversi scan.nextLine() restituiscono tutti null