Ciao a tutti ragazzi.

vi spiego:

la lettura da un file di testo "listautenti.txt" avviene solo se il file è composto da stringhe ordinate del tipo nome - cognome - anno - tag
es Paperone - De Paperoni - 1946 - soldi

Ma il compito d'esame mi richiede che il file accetti un numero >=0 di tag non definiti a priori.
In sintesi dovrei renderlo in grado di leggere un file di testo composto così:

Pico - De Paperis - 1965 - storia - geografia - paperopoli - scienze
Paperone - De Paperoni - 1946 - soldi
Gastone - Comesichiama - 1968

Il codice che ho scritto finora va in errore(noSuchFile) se il file non è formattato con un solo tag
mi potreste aiutare a risolvere il problema?

codice:
import java.util.ArrayList;import java.util.Scanner;
import java.util.StringTokenizer;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;


public class UtenteMain {


	public static void main(String[] args) {
		ArrayList<Utente>listaUtenti=new ArrayList<Utente>();


		try{ 
					//inizializzazione strumenti lettura
			FileReader fr=new FileReader("listautenti.txt");
			BufferedReader br=new BufferedReader(fr);


					//lettura del file riga per riga
			String rigaLetta = br.readLine( );
			while(rigaLetta!=null)
			{
				StringTokenizer st=new StringTokenizer(rigaLetta, "-");
				String nome=st.nextToken();
				String cognome=st.nextToken();
				String anno=st.nextToken();
				String listaTag=st.nextToken();




				try{
					Utente temp=new Utente(nome,cognome,anno,listaTag);
					listaUtenti.add(temp);
				}
				catch( NumberFormatException e )
				{
					System.out.println( "Errore DA DECIFRARE NEL CODICE: " + rigaLetta + "; record" );
				}


				rigaLetta = br.readLine( );


			}
			br.close( );


					// stampa a video la lista completa (temporaneamente)
			for ( Utente elementi: listaUtenti )
				//if (elementi.nome.equalsIgnoreCase("Mario")) per fare una selezione sulla stampa
				System.out.println(elementi.nome +" "+  elementi.cognome+ " "+ elementi.anno+" "+ elementi.listaTag); 


		}catch(FileNotFoundException e){
			System.out.println("Errore -file non trovato");


		}catch(IOException e){
			System.out.println("Errore nella lettura file(corrotto)");
		}
	}
}