javaSE CSV格式文件读写操作

CSV格式介绍

逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。建议使用WORDPAD或是记事本来开启,再则先另存新档后用EXCEL开启,也是方法之一。

CSV格式规则

1 开头是不留空,以行为单位。

2 可含或不含列名,含列名则居文件第一行。

3 一行数据不跨行,无空行。

4 以半角逗号(即,)作分隔符,列为空也要表达其存在。

5列内容如存在半角引号(即"),替换成半角双引号("")转义,即用半角引号(即"")将该字段值包含起来。

6文件读写时引号,逗号操作规则互逆。

7内码格式不限,可为 ASCII、Unicode 或者其他。

8不支持数字

9不支持特殊字符

 

javacsv提供了对CSV格式数据的读写

依赖jar包

       <!-- CSV读取工具  -->
        <dependency>
            <groupId>net.sourceforge.javacsv</groupId>
            <artifactId>javacsv</artifactId>
            <version>2.0</version>
        </dependency>

写入数据

public class WriterDemo {
    public static void main(String[] args) throws Exception {
        Path path = Paths.get("D:", "test", "csv_test.csv");
        CsvWriter cw = new CsvWriter(new FileOutputStream(path.toFile()), ',', Charset.forName("GBK"));
        String[] str = { "省", "市", "区", "街", "路", "里", "幢", "村", "室", "园", "苑", "巷", "号" };
        cw.writeRecord(str);// 写入一行,也可以使用cw.write("省");一个单元格的写,写完通过cw.flush();完成一行
        cw.close();
    }
}
 

读取数据

public class ReaderDemo {
    public static void main(String[] args) throws Exception {
        Path path = Paths.get("D:", "test", "csv_test.csv");
        CsvReader rw = new CsvReader(new FileInputStream(path.toFile()), Charset.forName("GBK"));
        rw.readHeaders();//开启读取表头,CSV文件默认首行为表头
        String[] headers = rw.getHeaders();//读出表头数据
        while(rw.readRecord()) {//开启读写内容
            String rawRecord = rw.getRawRecord();//读取一行
            String[] split = rawRecord.split(",");//使用逗号拆分后获取一行值的字符数组
            
            String string = rw.get("省");//根据表头名称读取一个单元格值,也可传入表头的int索引值
            System.out.println(string);
        }
        
        rw.close();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值