假设我有两个 .dat 文件;一个在我的电脑上,另一个在地球的另一端——数据不断地通过QDataStream
.
数据以相同的方式解析——首先是某种 ID,然后是与该特定 ID 关联的对象。
QFile file("data.dat");
QDataStream stream(&file);
file.open("QIODevice::ReadWrite");
stream << *id*; // ID goes in.
stream << *data_object*; // Object with interesting data is serialized into the file.
file.close();
过了一会儿——第一个可能看起来像这样(说明性的,语法上不正确):
//-------------------------------------DATA.DAT------------------------------------//
ID:873482025
dataObject
ID:129845379
dataObject
ID:836482455
dataObject
ID:224964811
dataObject
ID:625444876
dataObject
ID:215548669
dataObject
//-------------------------------------DATA.DAT------------------------------------//
但第二个还没有完全赶上。
//-------------------------------------DATA.DAT------------------------------------//
ID:873482025
dataObject
ID:129845379
dataObject
ID:836482455
dataObject
//-------------------------------------DATA.DAT------------------------------------//
是否可以同时获取两个文件——检测它们之间的差异,然后在第二个文件中缺少但第一个文件中存在的文件中“融合”?
显然,这可以通过编写一个函数来提取文件的内部结构、单独对内容进行分类、比较它们等等来实现——但是有没有办法通过只处理文件本身来实现这一点,而不必单独解析内容?