Salve a tutti,
Ho dei problemi a gestire la lettura di un file, la questione è la seguente...
Io dovrei leggere un file di testo composto da lettere che sono delimitate da un codice che è sempre lo stesso, del tipo
<Codice sempre uguale>
riga1
riga2
...
rigaN
<Codice sempre uguale>
riga1
riga2
...
rigaN
<Codice sempre uguale>

e cosi' via, il problema è che questo file di testo è enorme quindi non posso fare la lettura dell'intero file e metterlo in un arraylist, quindi vorrei eseguire la lettura lettera per lettera.
Il codice che ho provato ad usare è

codice:
protected static ArrayList<String> ottieniSingolaLettera(BufferedReader reader)
	{
		ArrayList<String> lettera = null;		
		try
		{			
			String letto = reader.readLine();
			while(letto!=null)
			{
				if(letto.length()>2)
				{
					if(letto.substring(0,3).matches("3LettereCodice"))
					{	
						lettera= new ArrayList<String>();
						lettera.add(letto);					
						letto=reader.readLine();					
						while(!letto.substring(0,3).matches("3LettereCodice"))
						{
							lettera.add(letto);					
							letto=reader.readLine();
						}
						break;

					}
					else
						letto=reader.readLine();
				}
			}
		}
		catch(Exception e)
		{
			System.out.println(e.getMessage());
		}
		return lettera;
	}
Pensavo di aprire nel main un buffered reader e usare sempre quello in un ciclo per gestire una per una le lettere.

Il problema cosi' è che praticamente mi legge una lettera si e una no perchè l'ultimo readline contiene il codice che fa da interruzione e quindi quando rientra nel metodo rifà il readline e salta alla lettera successiva...

Qaulcuno sa come potrei uscirne vivo?
Grazie in anticipo per le risposte