一个大文件,或几个小文件

One large file, or several small files?

本文关键字:文件 小文 几个 一个      更新时间:2023-10-16

我正在将3D模型数据写入文件,同时包含许多不同类型的信息(网格,纹理,动画等),大小约为50至100 mb。

我想把所有这些放在一个文件中,但是如果我只需要读取文件的一小部分来获得我想要的内容,我担心这会花费我的时间。

我应该使用多个较小的文件,还是一个非常大的文件?我不知道文件系统如何处理在大文件之间跳转的尝试,因此我所知道的是,遍历大文件要么代价高昂,要么根本没有问题。

另外,如果使用单个大文件,我必须做什么特别的事情吗?

在文件中间访问数据没有问题——操作系统不需要读取整个文件,它可以很容易地跳转到任何一点。复杂之处在于,您需要提供一个可读取的索引,以识别各种数据块的位置。

例如,如果你想读取一个特定的动画,你需要一种方法来告诉你的程序这个数据在文件中的位置。一种方法是在文件的开头存储索引结构,您的程序将读取它以找出所有数据块的位置。然后它可以在这个索引中查找动画,发现它的位置是24680,长度是2048字节,然后它可以寻找这个位置来读取数据。

如果您不熟悉在文件中查找,您可能想要查找fseek调用:http://www.cplusplus.com/reference/cstdio/fseek/