Non voglio risolvere il problema (ho già trovato un altro codice funzionante) ma vorrei con il vostro aiuto capire perché il codice seguente legge solo i primi 80 caratteri del file file.txt. Se fosse possibile (credo di no, ho già provato io in vari modi) mi piacerebbe trovare un sistema per far lavorare il codice per file di dimensioni molto più grandi però ripeto sarebbe un problema secondario perché ho trovato un codice che con un ciclo while e qualche altro artifizio mi risolve il problema. Ho postato solo a scopo didattico per capire l'errore che commetto.
codice:
public static void leggifile() {// Metodo non funzionante
String percorso = "file.txt";
int dimensione = 0;
try {
File oo = new File(percorso);
FileReader ooo = new FileReader(oo);
dimensione = ooo.read();
ooo.close();
System.out.println(dimensione);// Perché 80?
File ff = new File(percorso);
FileReader fff = new FileReader(ff);
char[] in = new char[dimensione];
dimensione = fff.read(in);
System.out.println("Caratteri presenti: " + dimensione);
System.out.println("Il contenuto del file è il seguente:");
for (int i = 0; i < dimensione; i++)
System.out.print(in[i]);
fff.close();
} catch (IOException e) {
e.printStackTrace();
}
}