写大文件问题探讨
我手里有一个应用---解析大型xml文件(),然后把解析后的数据保存到外存上(由于前面解析得到的信息还要参考后面的信息来更新自己,所以不能边解析边向一个文件直接写入数据)
于是,我想到的第一个方法就是边解析,边将数据保存到B+树上,B+树的data区域存放着一个文件的偏移位置,当然随着解析的进行,
B+树要维持数据的更新,即就是按照一定的顺序存放,这样解析起来就很慢,由于在B+树更新数据时,会出现大量的文件内容挪动问题。
参考文件内存映射的技术,能不能这样,对于写数据的文件建立一个文件内存映射,然后,B+树的data区域存放着这个映射文件的偏移位置,随着数据放入,B+树中,这样就相当于直接在内存中进行排序了,不能这样行得通吗?
或者,大家还有更好的方法,当然除过借用数据库,谢谢大家!!