一个大文件,或几个小文件
One large file, or several small files?
我正在将3D模型数据写入文件,同时包含许多不同类型的信息(网格,纹理,动画等),大小约为50至100 mb。
我想把所有这些放在一个文件中,但是如果我只需要读取文件的一小部分来获得我想要的内容,我担心这会花费我的时间。
我应该使用多个较小的文件,还是一个非常大的文件?我不知道文件系统如何处理在大文件之间跳转的尝试,因此我所知道的是,遍历大文件要么代价高昂,要么根本没有问题。
另外,如果使用单个大文件,我必须做什么特别的事情吗?
在文件中间访问数据没有问题——操作系统不需要读取整个文件,它可以很容易地跳转到任何一点。复杂之处在于,您需要提供一个可读取的索引,以识别各种数据块的位置。
例如,如果你想读取一个特定的动画,你需要一种方法来告诉你的程序这个数据在文件中的位置。一种方法是在文件的开头存储索引结构,您的程序将读取它以找出所有数据块的位置。然后它可以在这个索引中查找动画,发现它的位置是24680,长度是2048字节,然后它可以寻找这个位置来读取数据。
如果您不熟悉在文件中查找,您可能想要查找fseek
调用:http://www.cplusplus.com/reference/cstdio/fseek/
相关文章:
- 如何在文档文件夹中创建目录
- txt 文件中浮点数的最大和最小值
- 使用C++对一个巨大文件中的文本行进行字典式外部排序
- 如何使用PHP将上传到本地主机的一个html文件重定向到磁盘上的另一个html文档
- 显示文件中具有最小给定元音数的单词
- 程序正在从文件中读取最大的数字,但不是最小的数字
- 哪个链接更快?许多小的 .so 文件还是几个大的 .so 文件?
- 将STL文件添加到QT小部件
- 如何使用直接IO编写一个带有扩展文件大小的小文件
- 如何在“文档”文件夹中指向文件夹
- 要读取txt文件并从第二列中找到其最小值的第一列值
- MMAP仅适用于小文件
- 如果有一个以上的allindromes,找到最长但词典最小的回文
- 为什么我不能像C++中的小端序文件那样读取大端 ELF 文件?
- 如何快速保存大文件中的小更改
- 写入单个大数据文件或多个小文件:哪个更快?
- QT自定义小部件无法找到对象文件
- BSONCXX-是否有一种方法可以通过.bson转储文件中的文档进行迭代
- c++/查找有关目录和文件的文档(如dirent.h)
- 为什么.so文件总是比.a文件小?(来源相同)