Как объединить два CSV-файла с одинаковыми столбцами заголовка в другой CSV-файл, используя Java - PullRequest
0 голосов
/ 21 марта 2019

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(); 

как пропустить столбец заголовка в выходном файле

1 Ответ

0 голосов
/ 21 марта 2019

Просто пропустите первые строки второго и последующих 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(); 
    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...