对比两个CSV 文件是否相同(方法一)

这是一个Java实现的工具类,用于比较两个CSV文件的内容是否相同。它读取CSV文件,通过正则表达式处理特殊字符,并进行逐行逐元素的比较。如果文件大小不同或内容不一致,将输出相应的提示。
摘要由CSDN通过智能技术生成
package shishikan;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class CsvFileUtil
{
    private static final String SPECIAL_CHAR_A = "[^\",\\n  ]";
    private static final String SPECIAL_CHAR_B = "[^\",\\n]";
    /**
     * 构造,禁止实例化
     */
    private CsvFileUtil()
    {
    }
    public static void main(String[] args)
    {
        // test
        try
        {
            List list1 = readCsvFile("e:\\1234.csv");
            List list2 = readCsvFile("e:\\12345.csv");
            
            if(cvsCompare(list1, list2))  System.out.print("csv比较相同");
            else System.out.print("csv比较不相同");
            
        } catch (FileNotFoundException ex)
        {
            Logger.getLogger(CsvFileUtil.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex)
        {
            Logger.getLogger(CsvFileUtil.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    
    public static <T extends Comparable<T>> boolean compare(List<T> a, List<T> b)
    {
        if (a.size() != b.size())
            return false;
        Collections.sort(a);
        Collections.sort(b);
        for (int i = 0; i < a.size(); i++)
        {
            if (!a.get(i).equals(b.get(i)))
                return false;
        }
        return true;
    }
    

    /**
     * csv文件读取<BR/> 读取绝对路径为argPath的csv文件数据,并以List返回。
     *
     * @param argPath
     *            csv文件绝对路径
     * @return csv文件数
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值