合并两个带有不同标头的csv文件

时间:2017-10-23 11:29:23

标签: java csv

我需要将两个CSV文件中的数据合并到具有相似标题但根据其各自部分的不同数据。 CSV文件将包含两个部分,第一部分包含根据扇区的数据,第二部分将包含来自住宅区的数据。这是我的第一个CSV文件

.\WsusUtil.exe configuresslproxy "IP" "Port" -enable

.\upddwnldcfg.exe /s:IP:Port /allusers

netsh winhttp import proxy source=ie #the IE settings are already configured


我的第二个CSV文件

Sector,Total Number of Occurrence 
sector1,12
sector2,30
sector3,100

House,Total Number of Occurrence  
B12,80
A2,87

我希望生成一个包含两个数据的CSV文件,但必须将数据分配到正确的部分,如下所示

Sector,Total Number of Occurrence 
sector 99,89
sector 11,9

House,Total Number of Occurrence 
Q11,22
Q22,67


但我想我目前开发的源代码,它无法做到这一点,因为它包含CSV中列出的第二个标题Sector,Total Number of Occurrence sector1,12 sector2,30 sector3,100 sector 99,89 sector 11,9 House,Total Number of Occurrence B12,80 A2,87 Q11,22 Q22,67 。我可以知道如何实现我想要的输出吗?这是我当前的csv输出看起来像

House,Total Number of Occurrence


  这是我目前开发的源代码    

Sector,Total Number of Occurrence 
sector1,12
sector2,30
sector3,100

House,Total Number of Occurrence  
B12,80
A2,87
sector 99,89
sector 11,9

House,Total Number of Occurrence  
B12,80
A2,87 

1 个答案:

答案 0 :(得分:1)

首先,创建一个类来存储标题和每一行。

public class SubFile{
    private String headers;
    private List<String> lines
}

然后,每行读取文件行。 对于第一行,只需使用标题创建一个新的SubFile实例。以下每一行,在此实例中添加它们(addLine)。

你需要存储更多的一个“sub”csv,所以使用Collection,在这里,我会使用List,因为为什么不... {/ p>

List<SubFile> files;

每次读取标题(第一行或空行之后)时,都需要检查该标题是否与Collection中的实例匹配以继续添加,或创建实例。

public SubFile getInstance(String headerLine){
     /*
     instance = search instance in collection 
     if (instance not found)
         create instance
         add it to the list
     return instance
     */
}

我相信这很容易实现,所以我先让你试试,你有算法可以使用。

相关问题