apache commons csv写文件demo

1.简介

csv处理开源的工具有不少,比如:super csv 和 Apache commons csv,本文使用Apache Commons csv,其提供了非常简单的接口来读写csv文件。

本文是针对csv文件的写示例。

2.依赖

 <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-csv</artifactId>
      <version>1.1</version>
    </dependency>

3.pojo对象

将需要保存的数据映射到对象中,然后将该对象信息写入csv 文件中。

package test.csv;

import java.math.BigDecimal;

/**
 * 城市房价模型
 *
 * Created by qunzer on 2015/3/3.
 */
public class CityPrice {
    private Integer id;
    private String city;
    private BigDecimal price;

    public CityPrice(Integer id, String city, BigDecimal price) {
        this.id = id;
        this.city = city;
        this.price = price;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }
}

4.csv写入代码示例

package test.csv;

import com.google.common.collect.Lists;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;

import java.io.FileWriter;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.List;

/**
 * Created by qunzer on 2015/3/3.
 */
public class CsvFileWriter {
    private static final String LINE_SEPARATOR = "\n";
    private static final String[] File_HEAND = {"编号", "城市", "房价"};

    /**
     * 初始化数据,比如从数据库取值等
     *
     * @return
     */
    private static List<CityPrice> preCityPriceData() {
        List<CityPrice> cityPriceList = Lists.newArrayList();
        CityPrice cityPrice = new CityPrice(1, "beijing", BigDecimal.valueOf(350000));
        cityPriceList.add(cityPrice);
        return cityPriceList;
    }

    /**
     * 写入csv文件
     *
     * @param fileName 传入文件的路径,包含文件名
     */
    private static void csvWriter(String fileName) {
        FileWriter fileWriter;
        CSVPrinter csvPrinter = null;
        CSVFormat csvFormat = CSVFormat.DEFAULT.withRecordSeparator(LINE_SEPARATOR);
        try {
            fileWriter = new FileWriter(fileName);
            csvPrinter = new CSVPrinter(fileWriter, csvFormat);
            csvPrinter.printRecord(File_HEAND);
            for (CityPrice cityPrice : preCityPriceData()) {
                List<String> cityPriceRecord = Lists.newArrayList();
                cityPriceRecord.add(String.valueOf(cityPrice.getId()));
                cityPriceRecord.add(cityPrice.getCity());
                cityPriceRecord.add(String.valueOf(cityPrice.getPrice()));
                csvPrinter.printRecord(cityPriceRecord);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (csvPrinter != null) {
                    csvPrinter.flush();
                    csvPrinter.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
时间: 2024-08-25 10:33:51

apache commons csv写文件demo的相关文章

使用apache commons csv解析del(类似csv)格式文件

del格式类似csv,我这里的测试文件test.del是从DB2数据库中导出来的一组数据. apache commons csv的maven坐标为: <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-csv --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-csv&

Spring 中Apache Commons上传文件

在用Apache Commons完成文件上传功能需有的几步: 1.导入两个架包:commons-fileupload.jar和commons-io.jar maven中: 1 <dependency> 2 <groupId>commons-fileupload</groupId> 3 <artifactId>commons-fileupload</artifactId> 4 <version>1.3</version> 5

Apache Commons fileUpload实现文件上传之一

  需要两个jar包: commons-fileupload.jar Commons IO的jar包(本文使用commons-io-2.4.jar) 利用Servlet来实现文件上传. package web.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http

Apache Commons FileUpload实现文件上传

Commons FileUpload简介 Apache Commons是一个专注于可重用Java组件开发的 Apache 项目.Apache Commons项目由三个部分组成: 1.Commons Proper - 可重用Java组件的存储库. 2.The Commons Sandbox - 用于Java组件开发的工作区. 3.The Commons Dormant - 当前不活动的组件存储库. Commons-FileUpload是Commons Proper中的一个组件,该组件依赖于Comm

apache commons 之 transcation 简介和文件事务系统的实现

Apache Commons Transaction 旨在提供一个轻量级.标准化.高效的 Java 事务多线程编程的工具包,实现了多级锁.事务集合和事务级文件访问. 事务处理系统对数据库使用者来说,是非常熟悉的事情:但是如果将事务处理系统从数据库转移到文件系统上,估计很多同学都要一筹莫展了.实际上,无论库/框架.语言,或者文件系统级别,对文件系统操作事务的支持一直都很薄弱. 单独看一些文件系统操作(比如文件重命名.删除等),它们是原子的,但是从目前的情况看,很少有解决办法能够形成一组综合的API

上传文件出错:org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly

最近做一个web项目中有上传文件的功能,已经写出并在本地和部署到服务器上测试了好几个文件上传都没问题(我用的是tomcat).后来又上传了一个700多K的文件(前边的都是不足600K的,并且这个word文件用到了vb,比较复杂,可能造成读取较慢),在本地也是可以的,部署到服务器后在服务器上用服务器的本地浏览器上传也是可以的,但是部署到服务器上在其他地方通过浏览器访问上传却不行,情况是运行很久,然后出现“不能显示此页面”的字样.我就很奇怪,为什么同样的程序在本地和服务器上的效果却是不一样的?我看了

Apache commons VFS 文件操作 源代码示例

通过VFS对文件进行一些操作,包括写入.读取文件,判断文件是否可读可写等示例.Apache commons VFS包和apache commons的其他基础性类有非常密切的关系. 整理了一些常用的方法,源代码如下: package test.ffm83.commons.VFS; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.O

Apache commons io 效率之尝试与瞎写

我们使用Apache commons io,主要是为了提升各种效率.比如开发的效率,读取文件的效率,输出的效率等.输入.输入效率上的提升,是这个工具安身立命的本钱,是本:而开发效率的提升,能够让我们开发.项目相关人员获取实在的效益,是叶. 我们先说叶,再说本,对或者错,都是我的一家之言,仅供参考. ●在input中,最值得关注的方法之一是AutoCloseInputStream 这个输入流是一个底层输入流的代理,它能够在数据源的内容被完全读取到输入流后,后者当用户调用close()方法时,立即关

Java 文件上传组件 Apache Commons FileUpload 应用指南(转)

在最初的 http 协议中,没有上传文件方面的功能.RFC1867("Form-based File Upload in HTML".)为 http 协议添加了这个功能.客户端的浏览器,如 Microsoft IE, Mozila, Opera 等,按照此规范将用户指定的文件发送到服务器.服务器端的网页程序,如 php, asp, jsp 等,可以按照此规范,解析出用户发送来的文件. 2.1客户端 简单来说,RFC1867规范要求http协议增加了file类型的input标签,用于浏览