Skip to content

Latest commit

 

History

History
58 lines (43 loc) · 1.25 KB

README.MD

File metadata and controls

58 lines (43 loc) · 1.25 KB

fast-csv

load csv file for Mycat

使用 JDK NIO API 实现的 csv 解析工具。

主要功能:

  • 无特殊字符列解析,如 xx,23,ddx
  • 带特殊字符列解析,如 """id\r\n""","姓名","年龄"\r\n"

解析过程按 byte 解析,不涉及到文件编码,一行的结果是 List<byte[]>

本工具适合用在读取解析 程序生成的 csv 文件的场景

使用示例

mavn 仓库连接:https://mvnrepository.com/search?q=mrcode

<dependency>
  <groupId>cn.mrcode.mycat</groupId>
  <artifactId>fast-csv</artifactId>
  <version>0.1.0</version>
</dependency>

或则

compile 'cn.mrcode.mycat:fast-csv:0.1.0'

InputStream File

CsvReader reader = DefaultCsvReader.from(Paths.get(path));
for (List<byte[]> bytes : reader) {
    bytes.stream().map(i -> new String(i, utf8)).forEach(i -> {
        System.out.print("[" + i + "]");
    });
    System.out.println("");
}

FileChannel.map 方式

CsvReader reader = new MappedCsvReader(Paths.get(path));
while (reader.hashNext()) {
    reader.next();
}

致敬

阅读 javacsv2.1 源码,参考实现

更新记录

2018/11/27 v0.1.0

简单版本的 写出 支持

2018/11/02 v0.1.0-SNAPSHOT

从 mycat2 项目中独立出来首版, csv 的解析功能