私は何度もストリームを使用していますが、実際にどのように動作するかについては決して読んでいません。ストリームは単なるメタファーであるということ以外、私はそれらについて多くを知りません。ストリームは一連のバイトを表します。私は彼らが実際にどのように動作するかについてよく分かりません。Javaでファイルストリームを開くと、ストリームに「ポインタ」を付ける機能を持つOSと対話しているようです。Javaのストリームはどのようにメモリ消費に影響しますか?
基本的に私の質問は、ストリームがメモリ消費にどのように影響するかです。例えば入力ストリームがあり、そこからの読み込みを開始すると、読み取られたバイト数でメモリ消費量が増加し始めますか? Javaでストリームを開くと、読み込みを開始する前に完全なファイルを実際にロードすることはありませんか? 1つのストリームから読み込み、別のストリームに直接書き込むと、読み込んだ(そしてバッファに潜在的に存在する)バイト数だけメモリが増えます。バイト配列をJavaで読み込むと、ファイルのサイズに合わせてメモリ消費量が増えますか?
奇妙な質問のように聞こえるかもしれませんが、私は理解のためにガイダンス/修正が必要な場合があります。ありがとう。
ここでは非常に良い説明があります(http://www.ibm.com/developerworks/library/j-zerocopy/index.html)。また、バッファとメモリの使用方法についても説明します。 –