我在C++中有一些代码可以将结构写到文件中。该结构的格式为:
struct dataHeader
{
int headerID;
int numberOfDataLines;
};
struct data
{
double id;
double type;
char[100] name;
char[100] yyy;
};现在,这两个结构总是成对编写的,一个文件包含超过50000个这样的对。
我的问题是,有没有更有效的方法来做这件事?文件大小是我最关心的问题。
编辑:当前代码是一个循环中的简单fwrite (Psuedo- code ):
while(dataBlock.Next())
{
fwrite(&_dataHeader, sizeof(dataHeader), 1, fpbinary);
while( dataLine.Next())
{
fwrite(&_data[i], sizeof(data), 1, fpbinary);
}
}谢谢。
发布于 2014-02-13 21:19:50
如果数据有相似之处,您可以通过对数据进行分组来减少数据存储需求。例如,您可以准备一个"name“或"yyy”值的列表,并将您的数据分组写入,以便首先将数据值命名为"Bob“,然后是"Josh”。
如果您的所有数据都是唯一的,那么留给您的唯一选择就是在将二进制数据写入文件之前对其进行压缩,并在读取后将其解压缩。我建议你使用QuickLZ,它的压缩和解压缩速度非常快。
https://stackoverflow.com/questions/21755314
复制相似问题