Salve a tutti. Ho bisogno di una aiuto riguardo una lettura file. in poche parole dovrei verificare, senza scorrere lo Scanner, la riga successiva se contiene un determinato String pattern.
Io ho fatto cosi:
this.residence= new TreeMap<String, Abitazione>();
Abitazione a=null;
while(a!=null) {
try {
if(scR.hasNext("indipendente")) {
a=Soluzione.read(scR);
this.residence.put(a.getId(), a);
}else if(scR.hasNext("appartamento")){
a=Appartamento.read(scR);
this.residence.put(a.getId(), a);
}else {
throw new FileUncorrectExpection("il file soluzioni.dati non e' scritto correttamente");
}
} catch (FileUncorrectExpection e) {
System.err.println("E' stata trovata un eccezione di tipo FileUncorrectExpection");
System.err.println("il file contiene dati errati per l'inserimento delle abitazioni");
System.err.println(" la Struttura dati non verra riempita correttamente");
}
}
ho usato un hasnext solo che poi al momento del read che quindi scorre lo scanner e legge l'oggetto torna null e non viene riempita la collezione.
nel caso vi metto anche il metodo read magari sta qui l'errore solo che io non lo vedo.
public static Soluzione read(Scanner sc) {
if(sc.hasNextLine()) return null;
String tipo=sc.nextLine();
if(sc.hasNextLine()) return null;
String id=sc.nextLine();
if(sc.hasNextLine()) return null;
String via=sc.nextLine();
if(sc.hasNextLine()) return null;
String numeroCiv=null;
int newNumCiv=0;
try {
numeroCiv=sc.nextLine();
newNumCiv=Integer.parseInt(numeroCiv);
} catch (NumberFormatException e) {
System.err.println("E' stata trovata un eccezione di tipo NumberFormatException");
System.err.println("la stringa " +numeroCiv + " non puo essere convertita in un int");
System.err.println("l'oggetto non verra' creato");
return null;
}
if(sc.hasNextLine()) return null;
String comune=sc.nextLine();
if(sc.hasNextLine()) return null;
String valore=null;
double newValore=0;
try {
valore=sc.nextLine();
newValore=Double.parseDouble(valore);
} catch (NumberFormatException e) {
System.err.println("E' stata trovata un eccezione di tipo NumberFormatException");
System.err.println("la stringa " +valore + " non puo essere convertita in un int");
System.err.println("l'oggetto non verra' creato");
return null;
}catch (NullPointerException e) {
System.err.println("E' stata trovata un eccezione di tipo NullPointerException");
System.err.println("la stringa e' vuota");
System.err.println("l'oggetto non verra' creato");
return null;
}
if(sc.hasNextLine()) return null;
String piano=null;
int newPiano=0;
try {
piano=sc.nextLine();
newPiano=Integer.parseInt(piano);
} catch (NumberFormatException e) {
System.err.println("E' stata trovata un eccezione di tipo NumberFormatException");
System.err.println("la stringa " + piano + " non puo essere convertita in un int");
System.err.println("l'oggetto non verra' creato");
return null;
}
if(sc.hasNextLine()) return null;
String giardino=sc.nextLine();
boolean newGiardino=Boolean.parseBoolean(giardino);;
return new Soluzione(tipo,id, via, newNumCiv, comune, newValore, newPiano, newGiardino);
}
Vi prego aiutatemi!!!!!