有关多文件操作问题的编程思路请教(包含文件读写,提取,合并,文件内二进制数据比较等)
由于工作上的需要,想写一个程序帮助自己,问题来源如下
首先有n个(n暂定为20)的二进制文件,均为293MB(308,000,004bytes),其中头4个bytes为文件信息描述,其余数据为100w x 308bytes二进制数据组成,每个308bytes数据为一个独立的key,而且任意一组key的头5个字节都是唯一的。
另外有m个(m暂定为200)的二进制文件,文件大小不定,但这些文件的内容均为一个数字(Size)的整数倍,且Size=k已知,而且如果以此size去读取文件,每个unit的头5个字节数据(特征字节)一定来源于n个文件中的某一个文件的308bytes key的头5个字节。
现在想编程实现:
将m个文件中的所有特征字节读出,并在n个文件中查找到对应的key,再将其对应的308 bytes key读取出来存储到一个文件之中。
规律:如果m个文件中某个文件的大小是k*10,意味着此文件共有10组特征字节,假设10组特征字节为S0,S1...S9,如果寻找到s0在n个文件的第x个文件中,则余下的9个特征字节也一定在这个文件中且是顺序排列的。
目前难点主要是读取的文件数众多,如何能够高效率实现特征key的读取和对比