Ciao a tutti, stavo cercando di gestire il reinserimento del nome del file da leggere qualora quello che inseriremmo dovesse essere errato.
invece purtroppo, il programma continua a farmi andare avanti dicendomi che ha caricato 0 cd e chiedendomi autore, titolo del cd etc da cercare.
Io vorrei invece che mi chiedesse di reinserire il nome del file e una volta trovato, procedere con le altre richieste.
tutto qui
dove sbaglio?
codice:import java.util.Scanner;import java.util.ArrayList; import java.io.FileReader; import java.io.FileNotFoundException; import java.io.PrintWriter; public class gestoreCd { public static void main(String[] args) throws FileNotFoundException { ArrayList<cd>arrayCd=new ArrayList<cd>(); Scanner scan=new Scanner (System.in); int contatoreCd=0; int contatoreRicerca=0; int i; boolean riprovaInserimento=true; System.out.println("**********GESTIONE CD**********"); System.out.println("Inserisci il nome del file da leggere"); try{ String inputFile=scan.next(); FileReader fr=new FileReader(inputFile); Scanner input=new Scanner(fr); input.useDelimiter("\\s*<cd>\\s*"); while((input.hasNext())&&(riprovaInserimento=true)){ String riga=input.next(); Scanner line=new Scanner(riga); line.useDelimiter("\\s*;\\s*"); String autore=line.next(); String titolo=line.next(); String anno=line.next(); String casa=line.next(); cd cd=new cd(autore,titolo,anno,casa); arrayCd.add(cd); contatoreCd++; } } catch(FileNotFoundException e){ riprovaInserimento=false; System.out.println("FILE NON TROVATO, riprova"); //deve tornare al nome del file da cercare } System.out.println("caricati "+contatoreCd+ "CD"); System.out.println("Scrivi il nome dell'autore da cercare "); String autoreRicerca=scan.next(); System.out.println("Scrivi il titolo dell'album da cercare "); String titoloRicerca=scan.next(); System.out.println("Scrivi l'anno di pubblicazione da cercare "); String annoRicerca=scan.next(); System.out.println("Scrivi il nome della casa discografica da cercare "); String casaRicerca=scan.next(); PrintWriter out=new PrintWriter("output.txt"); System.out.println("---"); for(i=0;i<arrayCd.size();i++) { cd cd=arrayCd.get(i); if(autoreRicerca.equalsIgnoreCase(cd.getAutore())) { cd.getAll(); System.out.println("---TROVATO---"); contatoreRicerca++; } } if(contatoreRicerca==0) System.out.println("---"); contatoreRicerca=0; for (i=0;i<arrayCd.size();i++) { cd cd=arrayCd.get(i); if(titoloRicerca.equalsIgnoreCase(cd.getTitolo())) { cd.getAll(); System.out.println("---"); contatoreRicerca++; } } if(contatoreRicerca==0) System.out.println("---"); contatoreRicerca=0; for(i=0;i<arrayCd.size();i++) { cd cd=arrayCd.get(i); if(annoRicerca.equals(cd.getAnno())) { cd.getAll(); System.out.println("---"); contatoreRicerca++; } } if(contatoreRicerca==0) System.out.println("---"); contatoreRicerca=0; for(i=0;i<arrayCd.size();i++) { cd cd=arrayCd.get(i); if(casaRicerca.equalsIgnoreCase(cd.getCasa())) { cd.getAll(); System.out.println("---"); contatoreRicerca++; } } if(contatoreRicerca==0) System.out.println("---"); contatoreRicerca=0; out.close(); } }


Rispondi quotando