わかりました。ostream と istream を使用して、(少なくとも C++ では) ファイルと並べ替えを読み取ることができることを私は知っています。私の質問は、ゲーム >Minecraft< がチャンク (ゲームの世界) を生成し、それらを保存し、プレイヤーがゲームを操作している間、必要に応じて読み込むことができるということです。相互作用とは、構築、採掘、歩行、死亡 (頻繁に静かにする) を意味します。これはどのように可能ですか?? 2秒ごとに保存されている日付をどのように変更できますか?? ストリームを閉じずに開く必要がありますか、それともこれを行う特別な関数またはメソッドはありますか?? ありがとう!!
質問する
2846 次
2 に答える
0
特にMinecraftやJavaについては知りませんが、通常の方法はメモリマップファイルを使用することです:
- プログラムは、オペレーティング システムにファイルをメモリにマップするように要求します。C では、関連する関数は
mmap
(Unix の場合) とCreateFileMapping
(Windows の場合) です。 - プログラムには、ファイルが完全にメモリに読み込まれたかのようにアクセスできるメモリ ブロックがありますが、そうではありません。オペレーティング システムは、必要に応じてディスク上のファイルから関連データを読み込みます。
- プログラムがメモリのブロックに加えた変更は、ディスクに書き込まれます。通常、OS はこれらの変更をキャッシュし、キャッシュがいっぱいであるか、ディスクまたは CPU がアイドル状態の場合にのみディスクに書き込みます。
于 2013-06-25T23:40:38.633 に答える