我已经多次使用流,但我从来没有读过太多关于它们实际上是如何工作的。除了流只是一个隐喻之外,我对它们也不太了解。一个流只代表一个字节序列。我不太了解它们实际上是如何工作的,我猜想在 Java 中打开文件流会与操作系统交互,这些操作系统具有向流提供“指针”的功能。
基本上我的问题是流如何影响内存消耗。例如,当您有一个输入流并开始从中读取时,您只会开始随着读取的字节数增加内存消耗?在 Java 中打开流时,您实际上并没有在开始阅读之前加载完整文件?如果您从一个流中读取并直接写入另一个流,您只会根据您读取的字节数(并且可能在缓冲区中)增加内存?如果你在java中读取字节到一个字节数组,那么你会随着文件的大小增加内存消耗?
听起来可能是一个奇怪的问题,但我可能需要一些指导/纠正我的理解。谢谢。