Lucadf89 ha scritto:
Mi chiedevo se ha senso utilizzare un metodo del genere oppure non ha senso e tanto vale utilizzare il readLine e lavorare una riga alla volta?
No, non ha senso. BufferedReader ha un suo buffer char[] interno. E il tuo char[] text è un ulteriore "buffer" utilizzato "al di sopra" del BufferedReader. Insomma, è un
doppio buffering che in realtà non serve a nulla.
Inoltre per ricomporre tutto il contenuto parti da una stringa vuota "" e poi vai avanti usando la concatenazione delle stringhe textToPrint+=text[i] per aggiungere UN (1 !) carattere per volta. Questo è SUPER ALTAMENTE
inefficiente e rende completamente vani i benefici del buffering (singolo o doppio che sia).
Conclusione: no, non è quello il modo appropriato di "ragionare".
Lucadf89 ha scritto:
Se ho capito bene ( condizione da verificare) il metodo che fa al caso mio è read(cbuf, off, len).
P.S. nota che il:
int read(char cbuf[])
sotto-sotto fa nient'altro che invocare l'altro read(char[] cbuf, int off, int len) facendo:
return read(cbuf, 0, cbuf.length);
Quindi l'uso esplicito di fr.read(text, 0, text.length) è inutile, si poteva usare semplicemente fr.read(text)