JAVA读写csv文件

项目中遇到读写CSV的功能,在这里简单的总结一下。

要求是从数据库里面去的数据,写到CSV文件里。

注意的几点:CSV里面的数据使用“,”分割。每个数据用双引号括起来。

使用的第三方jar包 opencsv-2.3.jar里面的CSVWriter 类。

使用它参数最全的构造方法,下面是源代码。

1:Writer对象; 2:c:分割符“,”;3:每个数据引号双引号; 4:转译字符; 5:换行符(r\n\)

关于参数char,直接传入对应的ASCII。比如双引号用 c1=34;或者直接用c=','public CSVWriter(Writer writer, char c, char c1, char c2, String s)
    {
        resultService = new ResultSetHelperService();
        rawWriter = writer;
        pw = new PrintWriter(writer);
        separator = c;
        quotechar = c1;
        escapechar = c2;
        lineEnd = s;
    }

首先构造Writer对象。Writer是抽象类。通过其子类BufferedWriter实例化对象。

outPath:csv出力的全路径;append:是否对文件进行覆盖写入。

// 建立一个字节流

FileOutputStream fileOutputStream= new FileOutputStream(outPath, append);

// 这个字符流的编码方式是charsetName(很重要的转码方式)

OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream,charsetName);

// 流输出用缓存处理,加快速度

BufferedWriter bufferedWriter=new BufferedWriter(outputStreamWriter);

// 建立一个对象

CSVWriter write = new CSVWriter(bufferedWriter, xxxxxx);

// 调用writeAll方法 参数是一个String[]类型的List

write.writeAll(list);

// 写入之后不要忘记关闭所有的流

fileOutputStream.close();

outputStreamWriter.close();

bufferedWriter.close();

write.close();

1:注意几个类的关系:

FileOutputStream 是字节流,它一个字节一个字节的向外边送数据
OutputStreamWrite是字符流,它一个字符一个字符的向外边送数据

BufferedWriter  Buffer是一个缓冲区,为什么要用BUFFER呢?
    如果你直接用stream或者writer,你的硬盘可能就是一个字符或者一个字节    读写硬盘一次,
可是你用了Buffer,你的硬盘就是读了一堆数据之后,读写一下硬盘。这样对你硬盘有好处。

2:写文件的时候之前,要先创建下路径文件。

 File file = new File(outPath);

// 文件路径作成
 file.getParentFile().mkdirs();

 

转载于:https://www.cnblogs.com/lucongrui/p/3443756.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值