commons-csv(1)

Apache Commons工具类学习(一)-----CSV
从今天开始学习Apache Commons工具类中的部分组建,第一项内容为:CSV组件

对应官网地址:http://commons.apache.org/proper/commons-csv/index.html

下载地址:http://commons.apache.org/proper/commons-csv/download_csv.cgi

JavaDoc:http://commons.apache.org/proper/commons-csv/apidocs/index.html

用户指引:http://commons.apache.org/proper/commons-csv/user-guide.html

Maven引用:

org.apache.commons commons-csv 1.2

一、csv写入

步骤:

1、初始化csv文件

//CSV文件分隔符
private final static String NEW_LINE_SEPARATOR="\n";
//初始化csvformat
CSVFormat formator = CSVFormat.DEFAULT.withRecordSeparator(NEW_LINE_SEPARATOR);

2、创建对应文件的writer对象

//创建FileWriter对象,filePathcsv文件路径
FileWriter fileWriter=new FileWriter(filePath);

3、使用CSVPrinter中的printRecord 方法写入文件

printRecord方法存在多种传参

printRecord(Iterable<?> values) Iterable接口对象,所有集成Iterable接口的子类均可写入

printRecord(Object… values)对象数组,可以将数据整合为各种类型的对象,写入的为Object的toString()方法的值

批量写入时使用 printRecords, 同样有printRecords(Iterable<?> values), printRecords(Object… values) 两个方法

4、样例代码

复制代码
1 /**写入csv文件
2 * @param headers 列头
3 * @param data 数据内容
4 * @param filePath 创建的csv文件路径
5 * @throws IOException **/
6 public static void writeCsv(String[] headers,List<String[]> data,String filePath) throws IOException{
7
8 //初始化csvformat
9 CSVFormat formator = CSVFormat.DEFAULT.withRecordSeparator(NEW_LINE_SEPARATOR);
10
11 //创建FileWriter对象
12 FileWriter fileWriter=new FileWriter(filePath);
13
14 //创建CSVPrinter对象
15 CSVPrinter printer=new CSVPrinter(fileWriter,formator);
16
17 //写入列头数据
18 printer.printRecord(headers);
19
20 if(null!=data){
21 //循环写入数据
22 for(String[] lineData:data){
23
24 printer.printRecord(lineData);
25
26 }
27 }
28
29 System.out.println(“CSV文件创建成功,文件路径:”+filePath);
30
31 }
复制代码

5、调用代码及结果

真实写入结果

二、读取csv

读取csv文件需要使用CSVParse类,使用此类来读取csv字节,与写入时类似,都首先要用CSVFormat对象来格式化csv文件流,此时要使用Reader的子类对象

一下为样例:

复制代码
/**读取csv文件
* @param filePath 文件路径
* @param headers csv列头
* @return CSVRecord 列表
* @throws IOException **/
public static List readCSV(String filePath,String[] headers) throws IOException{

    //创建CSVFormat
    CSVFormat formator = CSVFormat.DEFAULT.withHeader(headers);
    
    FileReader fileReader=new FileReader(filePath);
    
    //创建CSVParser对象
    CSVParser parser=new CSVParser(fileReader,formator);
    
    List<CSVRecord> records=parser.getRecords();
    
    parser.close();
    fileReader.close();
    
    return records;    
}

复制代码
  调用代码及结果(循环时索引从1开始,是因为返回的records中包含了列头)

三、CSVRecord

一下为此类源码部分,可以看到数据存储在String数组values 中,并有mapping来对应索引关系,所以在使用get()取数据时有get(String name)使用列名取 和 get(int index)索引值来取数据,

如果想深入学习可以在下载时同时下载源码,深入数据结构来详细了解更详细的用法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
commons-csv-1.8.jar是一个Java的CSV文件处理库。CSV(逗号分隔值)是一种常见的文件格式,用于存储和传输表格数据。它将每行数据存储为逗号分隔的数值或字符串字段。 commons-csv-1.8.jar提供了一组功能强大的API,用于读取、写入和操作CSV文件。它可以帮助用户轻松地处理CSV文件,无需手动解析每个字段并进行操作。这个库具有高度的灵活性和可扩展性,可以适应各种不同的CSV文件格式和需求。 在读取CSV文件方面,commons-csv-1.8.jar可以解析整个文件并将其转换为可操作的数据结构,例如列表或映射。它可以处理包含标题行的文件,并根据需要跳过或读取特定的列。此外,它还可以处理包含引号或转义字符的字段,并正确解析其中的逗号。 在写入CSV文件方面,commons-csv-1.8.jar提供了一种简单且灵活的方式来生成CSV文件。它可以将数据结构(例如列表或映射)转换为CSV格式,并将其写入文件或输出流。用户可以定义字段分隔符、引号字符和换行符等设置,以满足特定的文件格式要求。 commons-csv-1.8.jar还可以对CSV文件进行一些高级操作,例如按条件过滤数据、排序、聚合和组合不同的CSV文件等。它还支持通过自定义解析器、格式化器和转换器来处理特殊的数据需求。 总而言之,commons-csv-1.8.jar是一个功能强大且易于使用的Java库,可以帮助用户有效地读取、写入和操作CSV文件。无论是处理小型还是大型的CSV文件,它都可以提供高效和可靠的解决方案。无论是在数据处理、数据分析、数据导入/导出还是与其他系统的集成等方面,它都是一个非常有用的工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值