平面文件比较工具

时间:2016-06-11 04:20:49

标签: java file text comparison large-data

Flatfile1.txt

HDR06112016FLATFILE     TXT  
CLM12345     ABCDEF....  
DTL12345     100A00....  
DTL12345     200B00....  
CLM54321     ABCDEF....  
DTL54321     100C00....  
DTL54321     200D00....  

Flatfile2.txt

HDR06112016FLATFILE     TXT  
CLM54321     FEDCBA....  
DTL54321     100C00....  
DTL54321     200D00....  
CLM12345     ABCDEF....  
DTL12345     100A00....  
DTL12345     200B00....

两个文件的映射都是相同的:

Header:  
Field       StartPosition       EndPos       Length   
Identifier       1                 3           3  
Date             4                12           8  
and so on

CLM:

Field       StartPosition       EndPos       Length   
Identifier       1                 3           3  
Key              4                12           8  
Data            13                19           6  
and so on  

Dtl时:

Field       StartPosition       EndPos       Length   
Identifier       1                 3           3  
Key              4                12           8  
and so on  

这是一个示例文件,最大可达500mb和大约50个字段。我需要根据它们的映射来比较这两个文件。文件格式是 - 一行中的一个标题和声明数据(12345),其详细数据可以是多个。这些声明可以随机出现在另一个文件中。它不是行到映射。两个文件中的详细数据排序相同。

期望的输出:

For Key 54321 , Data(pos 13:19) is not same.  

请您帮我比较这两个文件?在Java中是否可行,因为文件大小会很大?

1 个答案:

答案 0 :(得分:0)

Java可以正常工作。你不需要把文件完全放在内存中;你可以打开它们并逐步阅读,随着时间的推移进行比较。