如何在Java中比较两个CSV文件的数据(逐行)

时间:2018-11-20 11:10:26

标签: java

我正在一个Java项目中,我必须比较两个CSV文件。第一个程序应读取每一列的数据并将其与所有其他列的数据进行比较。

CSVFILE1具有3列的

name , organization , preference   

CSVFILE2具有3列的

name , organization , preference . 

如果这两个文件在该列的所有3个中都具有相同的值,则程序应返回true。如果不是的话,我必须在第3栏中签入并对CSVFILE2进行更改。

目前,我已经建立了一种方法,可以读取CSVFILE并将其分配给数组。下面是我的代码。

import java.awt.List;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;

public class Hospetal {
    static String file1Path1 = "C:\\\\Users\\\\DANGER\\\\Desktop\\\\New folder\\\\Diva.csv";

    public static void main(String[] args) throws IOException {
        ReadFirstFile();

    }

    //Reading file form csv
    public static void ReadFirstFile() throws FileNotFoundException {
        String token1 = "";
        Scanner inFile1 = new Scanner(new File(file1Path1)).useDelimiter(",\\s*");
        ArrayList<String> temps = new ArrayList<String>();

        // while loop
        while (inFile1.hasNext()) {
            // find next line
            token1 = inFile1.next();
            temps.add(token1);
        }

        inFile1.close();

        String[] tempsArray = temps.toArray(new String[0]);

        for (String s : tempsArray) {
            System.out.println(s);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我建议您看一下apache commons-csv库,它使读取和解析csv记录变得非常容易。 那么您可以轻松地解析两个文件,从而生成两个CSVRecords列表,然后可以轻松比较它们。如果文件2中的记录与文件1中的记录不同,则可以对其进行更改。

编辑:https://commons.apache.org/proper/commons-csv/