Ho usato i flussi molte volte ma non ho mai letto molto su come effettivamente funziona. Né ne so molto di loro se non che un flusso è solo una metafora. Un flusso rappresenta solo una sequenza di byte. Non so molto su come effettivamente funzionano, suppongo che l'apertura di un flusso di file in Java interagisca con il sistema operativo che ha la funzionalità di dare un "puntatore" a un flusso.In che modo gli stream in Java influiscono sul consumo di memoria?
Fondamentalmente la mia domanda è come i flussi influenzano il consumo di memoria. Quando si dispone ad esempio di un flusso di input e si inizia a leggere da esso, si inizia ad aumentare il consumo di memoria con la quantità di byte letti? Quando si apre un flusso in Java, non si carica effettivamente il file completo prima di iniziare a leggere? Se si legge da uno stream e si scrive direttamente su un altro stream, si aumenta solo la memoria con la quantità di byte letti (e potenzialmente presenti nel buffer)? Se leggi byte su un array di byte in java, aumenti il consumo di memoria con le dimensioni del file?
Può sembrare una domanda strana ma potrei aver bisogno di una guida/correzione sulla mia comprensione. Grazie.
Hai una spiegazione molto buona [qui] (http://www.ibm.com/developerworks/library/j-zerocopy/index.html) zero copia. Inoltre spiega i buffer e l'utilizzo della memoria. –