Salve a tutti, devo manipolare file di grandi dimensioni (roba di Gb per intenderci) e ho bisogno di accedere in lettura più volte allo stesso file. Dato che creare e distruggere in continuazione gli stessi oggetti non è una buona pratica, pensavo di creare il buffer fuori dal ciclo e, ad ogni fine iterazione chiuderlo per poi re-istanziarne uno nuovo:

Codice PHP:
FileReader lettore = new FileReader(nomeListaB);
BufferedReader buffer null;

while(
condizione) {
   
buffer = new BufferedReader(lettoreB);
   
String rigaFile buffer.readLine();

   
//Istruzioni varie

   
buffer.close();   

Così facendo mi viene restituito l'errore: java.io.IOException: Stream closed (non gestisco le eccezioni ma semplicemente le rilancio). Qualcuno capisce cosa non va?

La mia esigenza è quella di resettare il BufferedReader, sono a conoscenza dell'esistenza dei metodi mark/reset ma in mark andrebbe inserito un intero che rappresenta "Limit on the number of characters that may be read while still preserving the mark", io questo valore non lo conosco a priori e penso che non valga la pena mettersi a calcolarlo.

Grazie per l'aiuto