java读取csv文件内容(逗号分隔、回车换行文本)

本文介绍了如何使用Java处理CSV文件,特别是包含逗号和双引号的复杂字段。通过正则表达式解析每一行,确保正确处理字段内的逗号,并将数据插入到数据库中。
摘要由CSDN通过智能技术生成

最近在做项目时需要每日更新大小额支持的银行列表信息,该文件从核心下载,并使用java项目解析放到数据库中,该文件是文本文件,一行为一条记录,记录中以逗号分隔字段,字段以双引号包裹,起初以这种规则自己写一个小程序也能用,于是写了几句代码,确实能运行解析出大部分内容,但有些特殊情况是没有解析出来的,例如:双引号包裹的的字段内容里面也有逗号,但这个逗号并不是字段之间的分隔符,而是字段内容的一部分。起初并不知道这其实是一种标准的csv格式,虽然曲折但是整好了记录下



package com.schedule;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.sql.DataSource;

import org.apache.commons.lang3.time.DateUtils;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;

import com.ynet.ifp.eams.core.util.FtpUtils;
import com.ynet.ifp.eams.utils.file.UncompressFileGZIP;
import org.springframework.stereotype.Component;

/**
 * 更新大小额联行号信息 暂定每天晚上11点执行
 */
@Component("firstUpdatePxdzfInfoSchedule")
public class FirstUpdatePxdzfInfoScheduleImpl extends EamsScheduledService {
 private static Logger log = Logger.getLogger(FirstUpdatePxdzfInfoScheduleImpl.class);
 
   @Autowired
   private com.ynet.ifp.core.utils.TxUtils txUtils;
   @Autowired
   private DataSource dataSource;
   @Value("${hx.bank.host}")
   private String host;
   @Value("${hx.bank.port}")
   private int port;
   @Value("${hx.bank.path}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值