【问题标题】:How to merge two csv files with same header columns into another csv file using java如何使用java将具有相同标题列的两个csv文件合并到另一个csv文件中
【发布时间】:2019-03-21 13:14:35
【问题描述】:

csv 文件 1:

a|b|c
a|a|a
b|b|b

csv 文件 2:

a|b|c
c|c|c
d|d|d

输出 csv 文件:

a|b|c
a|a|a
b|b|b
c|c|c
d|d|d

这是我尝试合并的代码,但标题重复了两次: 当涉及到将两个文件合并为单个备用 csv 文件时,我也面临与上述标题列相同的问题,每次我应该做什么来忽略它时都会重复。 下面是我的代码

  public static void main(String[] args) throws IOException  
{ 
    // PrintWriter object for file3.txt 
    PrintWriter pw = new PrintWriter("file3.txt"); 

    // BufferedReader object for file1.txt 
    BufferedReader br1 = new BufferedReader(new FileReader("file1.txt")); 
    BufferedReader br2 = new BufferedReader(new FileReader("file2.txt")); 


    String line1 = br1.readLine(); 
    String line2 = br2.readLine(); 

    // loop to copy lines of  
    // file1.txt and file2.txt  
    // to  file3.txt alternatively 
    while (line1 != null || line2 !=null) 
    { 
        if(line1 != null) 
        { 
            pw.println(line1); 
            line1 = br1.readLine(); 
        } 

        if(line2 != null) 
        { 
            pw.println(line2); 
            line2 = br2.readLine(); 
        } 
    } 

    pw.flush(); 

    // closing resources 
    br1.close(); 
    br2.close(); 
    pw.close(); 

如何跳过输出文件中的标题列

【问题讨论】:

  • 所以你想要一个只有所有输入文件的唯一行的文件?
  • 输入文件是否排序?输出文件中的行顺序重要吗?
  • 不,顺序不重要,但如果数据有重复,则不应跳过它们,不应跳过它们
  • 我添加了另一个代码,其中两个文件合并到一个文件中,它也遇到了同样的问题如何忽略标题列

标签: java performance csv


【解决方案1】:

跳过第二个和后续 CSV 文件的第一行:

    for (int i = 0; i < fileNames.length; i++) { 
        System.out.println("Reading from " + fileNames[i]); 

        File f = new File(dir, fileNames[i]);

        BufferedReader br = new BufferedReader(new FileReader(f));

        String line = br.readLine();
        if (i > 0) 
              line = br.readLine(); //just skip the first line

        while (line != null) {
            pw.println(line); 
            line = br.readLine(); 
        } 

        pw.flush(); 
    } 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    • 2019-11-24
    • 2013-04-15
    • 2018-08-17
    • 1970-01-01
    相关资源
    最近更新 更多