日期:2014-05-20  浏览次数:20714 次

用Java处理数据量较大的文件
问个小问题哈,我的需求是这样,现在有两个文本txt文件,每一个文件当中都有大概五百万条记录,
文件1的记录格式为
user_id username login_time
文件2的记录格式为
user_id comment_num forward_num friend_num
其中两个表中的user_id是关联的,但不是一一对应。
我现在想使用Java编程序来提取【文件1.user_id=文件2.user_id】的记录,并且写到另一个文件3中。
求问大家有什么好主意没?^_^

导入数据库之后做表连接的办法就免了……机器太破跑不起。。
------解决方案--------------------
这个问题你昨天就发过了吧。。
反正昨天好像看到过。。
一次型全部装入内存是不行的,
那么我们能不能根据txt来创建一个索引呢?
就比如能不能根据id的前两位把数据分放到多张表中(根据id前两位明明表名或者文件名)。
查询的时候,遍历一个文件,先查10开头的文件,然后11,然后12.。。
------解决方案--------------------
1、笨办法

从1里面找第一行的 id  ,找到1里面是否还有id跟第一行一样,把一样的取出来
然后遍历 2里面的id,如果找到 把记录取出来保存。

2、优化一下

每次匹配完成后  把1 跟 2 里面对应的记录删掉,这样的话越往后文件越来越小,效率会越来越高