我一直在使用流很多次,但我從來沒有讀過很多關於他們如何實際工作。除了流只是一個比喻之外,我對它們的瞭解也不多。一個流只代表一個字節序列。我不太瞭解他們是如何實際工作的,我猜想在Java中打開一個文件流與具有向流提供「指針」的功能的操作系統交互。Java中的流如何影響內存消耗?
基本上我的問題是流如何影響內存消耗。例如,當你有一個輸入流,然後你開始讀取它時,你只能通過讀取的字節數來增加內存消耗?在Java中打開流時,在開始閱讀之前實際上並未加載完整文件?如果您從一個流中讀取數據並直接寫入另一個數據流,則只會增加讀取的字節數量(並且可能在緩衝區中)?如果你在java中將字節讀入一個字節數組,那麼你會增加文件大小的內存消耗?
可能聽起來像一個奇怪的問題,但我可能需要一些指導/更正我的理解。謝謝。
你有一個非常好的解釋[這裏](http://www.ibm.com/developerworks/library/j-zerocopy/index.html)零拷貝。還解釋了緩衝區和內存使用情況。 –