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

时间:2015-07-12 21:50:20

标签: c++ filesystems stdio

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

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

我应该为此使用多个较小的文件,还是单个非常大的文件好吗?我不知道文件系统如何处理试图跳转到巨大的文件,所以我知道,通过一个大文件迭代可能是昂贵的,或者根本没有问题。

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

1 个答案:

答案 0 :(得分:6)

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

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

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