Quando si fanno valutazioni di questo tipo, bisogna verificare che cosa si fa con i dati, ovvero se si "accumulano" dati in memoria in quantità proporzionale/paragonabile a quanto arriva in ingresso (es. da un file).
BufferedReader ha solo un piccolo array char[] di "buffer" interno di dimensione fissa (per default 8192 char ma si può esplicitare la dimensione) e legge di più di quanto serve perché appunto "bufferizza" i dati in modo da fare meno letture dallo stream sottostante. Ma BufferedReader NON accumula nulla di più del suo buffer interno. Quindi NON è lui di per sé una causa di problemi di occupazione della memoria.
Se tu sei sicuro di non accumulare le righe (o dati estratti/derivati dalle righe) in memoria all'interno di liste, mappe, oggetti, strutture dati ecc..., allora non c'è da preoccuparsi sulla questione della memoria.


Rispondi quotando