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();
}
}