grazie per la risposta Andrea, non uso mappe o liste (quindi su questo non avrei problemi), però il file letto non resta in memoria sulla jva virtual machine?
grazie per la risposta Andrea, non uso mappe o liste (quindi su questo non avrei problemi), però il file letto non resta in memoria sulla jva virtual machine?
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.
Ultima modifica di andbin; 07-05-2020 a 13:52
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet