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


	}


}