一个大文件,还是几个小文件?

Ann*_*inn 2 c++ filesystems stdio

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

我想把所有这些放在一个文件中,但是如果我只需要读取该文件的一小部分来获得我想要的东西,我担心它会花费我.

我应该使用多个较小的文件,还是一个非常大的文件好吗?我不知道文件系统如何处理试图跳转巨型文件,所以我知道迭代大文件可能要么昂贵,要么根本没问题.

另外,如果使用单个大文件,我还有什么特别的事吗?

Ala*_*lan 6

访问文件中间的数据没有问题 - 操作系统不需要读取整个文件,它可以轻松跳到任何一点.复杂性的来源是,您需要提供一个可以读取的索引,以识别各种数据的位置.

例如,如果要读取特定动画,则需要一种方法来告诉程序该数据在文件中的位置.一种方法是在文件的开头存储索引结构,程序将读取该结构以找出所有数据的位置.然后,它可以在此索引中查找动画,发现它位于24680位置并且长度为2048字节,然后它可以寻找此位置来读取数据.

fseek如果您不熟悉在文件中搜索,可能需要查找电话:http://www.cplusplus.com/reference/cstdio/fseek/