`

Java读写CSV之SuperCSV

 
阅读更多
http://rensanning.iteye.com/blog/1552053

Super CSV是一个速度奇快、免费跨平台的 CVS 格式数据的读写库,可以方便的处理对象、Map、列表的读写操作,以及自动化的类型转换和数据检查功能。

[url]http://supercsv.sourceforge.net/ [/url]

版本:SuperCSV-1.52.jar

1、读CSV 
InputStreamReader freader = new InputStreamReader(new FileInputStream(  
        new File("csv/test1.csv")), "GB2312");  
  
ICsvBeanReader reader = new CsvBeanReader(freader,  
        CsvPreference.EXCEL_PREFERENCE);  
  
//获取头部信息  
String[] headers = reader.getCSVHeader(true);  
  
//获取数据部分  
UserBean bean = null;  
while ((bean = reader.read(UserBean.class, headers, UserBean.readProcessors)) != null) {  
    System.out.print(bean.getName() + "\t");  
    System.out.print(bean.getAge() + "\t");  
    System.out.print(bean.getBirthday() + "\t");  
    System.out.println(bean.getAddress());  
}  



2、写CSV 
OutputStreamWriter fwriter = new OutputStreamWriter(  
        new FileOutputStream(new File("csv/test2.csv")), "GB2312");  
  
SimpleDateFormat format = new SimpleDateFormat("yyyy/M/d");  
  
ICsvBeanWriter writer = new CsvBeanWriter(fwriter,  
        CsvPreference.EXCEL_PREFERENCE);  
  
//做3条数据  
UserBean bean1 = new UserBean();  
bean1.setName("赵,四");       //特殊字符:逗号  
bean1.setAge(26);  
bean1.setBirthday(format.parse("1984/10/30"));  
bean1.setAddress("辽宁");  
  
UserBean bean2 = new UserBean();  
bean2.setName("刘\n能");      //特殊字符:换行  
bean2.setAge(24);  
bean2.setBirthday(format.parse("1986/5/13"));  
bean2.setAddress("吉林");  
  
UserBean bean3 = new UserBean();  
bean3.setName("谢\"广坤"); //特殊字符:双引号  
bean3.setAge(22);  
bean3.setBirthday(format.parse("1988/10/8"));  
bean3.setAddress("黑龙江");  
  
//输出头部  
String headers[] = { "name", "age", "birthday", "address" };          
writer.writeHeader(headers);  
  
//按顺序输出数据  
writer.write(bean1, headers, UserBean.writeProcessors);  
writer.write(bean2, headers, UserBean.writeProcessors);  
writer.write(bean3, headers, UserBean.writeProcessors);  
  
writer.close();  



3、自定义CellProcessor 
InputStreamReader freader = new InputStreamReader(new FileInputStream(  
        new File("csv/test5.csv")), "GB2312");  
  
ICsvBeanReader reader = new CsvBeanReader(freader,  
        CsvPreference.EXCEL_PREFERENCE);  
  
//获取头部信息  
String[] headers = reader.getCSVHeader(true);  
  
CellProcessor[] readProcessors = new CellProcessor[] {  
        new StrMinMax(2, 10),  
        new ParseInt(),  
        new ParseDate("yyyy/M/d"),  
        new CellProcessorAdaptor() {  
            @Override  
            public Object execute(final Object value, final CSVContext context) {  
                String v = (String) value;  
                if (v.length() > 5) {  
                    v = v.substring(0,5) + "......";  
                }  
                return next.execute(v, context);  
            }  
        }};  
  
//获取数据部分  
UserBean bean = null;  
while ((bean = reader.read(UserBean.class, headers, readProcessors)) != null) {  
    System.out.print(bean.getName() + "\t");  
    System.out.print(bean.getAge() + "\t");  
    System.out.print(bean.getBirthday() + "\t");  
    System.out.println(bean.getAddress());  
}  
System.out.println();  
  
reader.close();  
分享到:
评论

相关推荐

    super-csv一个快速开源的CSV读写Java库

    **super-csv库**是由James Bogle创建的,它提供了一套丰富的API,支持Java程序员方便地进行CSV文件的读取和写入操作。`super-csv`的主要特点包括: 1. **高性能**:`super-csv`使用高效的代码实现,对大量数据的...

    java 解析csv文件例子,csv文件 中文乱码问题

    对于解析CSV文件,Java社区提供了许多第三方库,如OpenCSV、SuperCSV和Apache Commons CSV等,它们提供了更高级的功能,如自动类型转换、处理复杂格式和避免内存消耗等。例如,使用Apache Commons CSV库读取CSV文件...

    java csv操作实例

    首先,Java标准库并未提供内置的CSV处理功能,但有第三方库如Apache Commons CSV、OpenCSV和Super CSV等可以帮助我们轻松地进行CSV操作。这里我们以Apache Commons CSV为例,它提供了一个强大的CSV解析器和生成器。 ...

    SuperCSV-1.52

    **SuperCSV-1.52** 是一个专为Java开发者设计的开源库,用于处理CSV(Comma Separated Values)文件。CSV文件是一种常见的数据交换格式,尤其在数据分析、电子表格和数据库导入导出中广泛应用。SuperCSV提供了一个...

    Java 导出CSV

    - **选择库**:Apache Commons CSV、OpenCSV、Super CSV等第三方库简化了CSV操作,但Java标准库`java.io`和`java.nio`也可以完成基本任务。 - **创建Writer对象**:使用`BufferedWriter`或选择的CSV库创建一个...

    SuperCSV-1.52相关文件

    SuperCSV库提供了一组强大的API,使得在Java应用程序中读取和写入CSV文件变得简单而高效。 描述中的"CSV csv 源码 jar包"进一步确认了这些文件包含了SuperCSV库的源代码和jar包。源代码对于开发者来说非常有价值,...

    java csv reader writer

    然后,可以使用`CSVParser`来读取CSV文件,`CSVPrinter`进行写入操作。以下是一些基本示例代码: 读取CSV文件: ```java import org.apache.commons.csv.CSVFormat; import org.apache.commons.csv.CSVParser; ...

    java版地图源码-super-csv:一个快速的、程序员友好的、免费的JavaCSV库

    java版地图源码超级csv 亲爱的 super-csv 社区,我们正在寻找帮助维护 super-csv 的人。 看 Super CSV 是一个快速、程序员友好的开源库,用于使用 Java 读写 CSV 文件。 它被许多大型项目使用,并且每月从 Maven ...

    supercsv2.3.1

    SuperCSV是一款强大的开源Java库,专为处理CSV数据而设计。本次我们关注的是其2.3.1版本,该版本的发布旨在提供更加稳定和高效的CSV操作体验。 SuperCSV 2.3.1主要知识点: 1. **基本功能**:SuperCSV提供了丰富的...

    SuperCSV:SuperCSV 项目的一个分支,有一些修复

    SuperCSV Kasper B. Graversen 的 SuperCSV 项目的一个分支。 ( ) 构建 ant dist ant test 更新日志 1.53 原始 SuperCSV 1.52 的初始分支 Apache ant 的 build.xml 允许读取和写入空值。 空字符串现在写为...

    Excel列表转化成java对象

    Java内置的`java.io.BufferedReader`和`java.util.Scanner`可以用来读取CSV文件。也可以使用开源库,如OpenCSV或Super CSV,它们提供了更高级的功能,如自动类型转换和错误处理。通过逐行读取文件,然后按逗号分割每...

    java如何读取excel文件

    此外,还有一些其他库,如OpenCSV、Super CSV等,可以用来处理CSV格式的文件,但它们不直接支持Excel的二进制格式。如果你的Excel文件主要由纯文本组成,可以考虑转换为CSV再进行处理。 在实际项目中,可能还需要...

    java 读取 Excel 读取 兼容2003,2007

    5. 第三方库:如OpenCSV、SuperCSV等 这些库主要针对CSV格式,但可以作为读取Excel的一种间接方式,特别是当Excel文件仅包含一列或多列数据时。 总结,Java开发者可以通过Apache POI库实现对Excel 2003 (.xls) 和 ...

    CSVTest:使用CSV文件学习Java

    3. 使用Java读取CSV文件: - 创建`Reader`对象:通常使用`BufferedReader`读取文件内容。 - 使用`CSVParser`解析:Apache Commons CSV库中的`CSVParser`类负责解析CSV文件,可以指定分隔符、是否忽略首行等参数。 ...

    Objetos_leearchivoscsv_

    3. 读取CSV文件: 不依赖外部库,我们可以使用`BufferedReader`和`StringTokenizer`来逐行读取并解析CSV文件。首先,创建`BufferedReader`实例以读取文件,然后使用`readLine()`方法获取每行文本,再使用`...

    导入导出excel、cvs

    2. **读取CSV文件**:Java标准库中的BufferedReader或Scanner可以轻松读取CSV文件。通过按行读取并分割字符串,可以获取到各个字段。 3. **写入CSV文件**:使用PrintWriter或BufferedWriter,逐行写入字段,字段间...

    Excel_Csv_Tool

    2. CSV到Excel的转换:读取CSV文件,将其内容转换为Excel格式,并保存为新的Excel文件。 3. 数据过滤和处理:可能提供对数据进行筛选、排序、计算等操作的功能。 4. 自定义导出:用户可以根据需求自定义列选择,只...

    interlok-csv:建议的名称为“ legendary-octo-sniffle”

    通过使用像"Legendary Octo Sniffle"这样的工具或Interlok的CSV组件,开发者可以轻松地在Java环境中处理CSV数据,无论是读取、写入还是转换,都能实现高效且灵活的操作。了解和掌握这些知识点对于任何涉及CSV数据的...

    CoolReader:这是一个很酷的 CSV 库

    简单易用的库来读取 csv 文件或其他类型的数据源,并将它们实例化为 java 对象,而无需像 SuperCSV 那样编写 CellProcessor。 总而言之,很酷!!! 动力 jCSV 很棒。 但是,我用它来编写测试用例,我想如果我能...

Global site tag (gtag.js) - Google Analytics