java解析csv文件工具类_解析.csv文件,Java工具类

文件格式为.csv格式的文件,我们需要解析文件里面的数据,进行存储落库。这时就需要解析出.csv格式文件中的数据。

我的方式是创建一个对象,对象属性与文件的表头一致,这样文件的解析结果就是一个关于这个对象的集合。

maven依赖配置

net.sourceforge.javacsv

javacsv

2.0

com.opencsv

opencsv

3.8

工具类代码:

package com.chuxin.fight.demo.common;

import com.alibaba.fastjson.JSONObject;

import com.chuxin.fight.demo.dao.model.Hotel;

import com.csvreader.CsvReader;

import lombok.extern.slf4j.Slf4j;

import java.nio.charset.Charset;

import java.util.ArrayList;

import java.util.List;

/**

* @FileName: CSVUtil

* @Description: 解析CSV格式文件的工具类

*/

@Slf4j

public class CSVUtil {

public static List csv() {

Hotel hotel = null;

//生成CsvReader对象,以,为分隔符,GBK编码方式

CsvReader r = null;

try {

List hotels = new ArrayList<>();

String csvFilePath = "E:\\AvailHotelSummary_V0.csv";

r = new CsvReader(csvFilePath, '|', Charset.forName("UTF-8"));

//读取表头

r.readHeaders();

//逐条读取记录,直至读完

while (r.readRecord()) {

hotel = new Hotel();

hotel.setHotelId(r.get(0));

hotel.setAddress(r.get("Address"));

hotel.setAddressCn(r.get("Address_CN"));

hotel.setAirportCode(r.get("AirportCode"));

hotel.setCityCode(r.get("CityCode"));

hotel.setCityName(r.get("CityName"));

hotels.add(hotel);

}

r.close();

return hotels;

} catch (Exception e) {

log.info("【航班信息】批量导入csv异常!", e);

return null;

} finally {

r.close();

}

}

public static void main(String[] args) {

List csv = csv();

System.out.println(csv.size());

log.info("cvs结果:{}",JSONObject.toJSONString(csv.get(6)));

for ( Hotel c :csv ) {

System.out.println(c.getHotelId());

}

}

}

通过工具类解析文件之后,我们将文件解析成我们的list集合。目标达成OK

你可能感兴趣的:(java解析csv文件工具类)