您的当前位置:首页正文

如何通过JavaCSV类库来优雅地(偷懒)读写CSV文件?

2022-05-11 来源:客趣旅游网
如何通过JavaCSV类库来优雅地(偷懒)读写CSV⽂件?欢迎关注笔者的公众号: ⼩哈学Java, 专注于推送 Java 领域优质⼲货⽂章!!⼀、背景⼩哈公司最近准备开发⼀套新的平台,具体什么平台,因为涉密,这⾥就不透露了。平台在最终的的技术选型中,其中主要依赖的技术栈是 Apache Flink, ⼀款 Apache 基⾦会开源的流处理框架,平台的核⼼业务都会交给 Flink 去处理,其中包括离线批量任务计算,以及实时任务计算。PS: 后⾯⼩哈也会分享⼀些 Flink 相关的⽂章,正在考虑要不要⽴个 Flag, 出⼀套 Flink 的⼊门教程系列⽂章,主要怕⾃⼰太懒了,泼出去的⽔,收不回来,那就尴尬了~ 󰀀然后呢?和这篇⽂章的主题啥关系?哎,别急,听我娓娓道来!主要是我们部门也是第⼀次接触 Flink, 虽然久闻⼤名,知道其计算性能极为出众,但是⽿听为虚,⼀番性能测试是是避免不的。于是,⼩哈以离线场景为例,模拟实际业务数据,输⼊源为 csv 编码⽂件针对不同量级的数据,100w, 1000w, ⼀亿的数据量做测试,分别看看不同维度的性能指标,如执⾏耗时、CPU、内存、吞吐量等。PS: 因为⼩哈毕竟不是专业的测试⼈员,这⾥只是做了⼀些简单的测试,对 Flink 的性能有个⼤致的认知即可。⼩伙伴们如果有需要,可以使⽤专门的⼤数据测试⼯具,如 HiBench。这⾥贴⼀篇美团技术团队出品的⽂章《流计算框架 Flink 与 Storm 的性能对⽐》,有兴趣的⼩伙伴可以看下:好了,铺垫了这么多,其实是想⽔⽂⼀篇,没啥技术含量,就是给⼤家推荐第三⽅⼯具库 JavaCSV,⽤来造⼀些 csv 测试数据⽂件,个⼈觉得它⾮常地优雅⽅便 (⽐较偷懒~ 代码量少~)。⼆、开始2.1 添加 Maven 依赖 net.sourceforge.javacsv javacsv 2.02.2 写⽂件要如何通过 javacsv⽣成 CSV ⽂件呢?参考下⾯的⽰例代码:/** * @author ⽝⼩哈(公众号:⼩哈学Java) * @date 2019/4/12 * @time 下午3:05 * @discription 读写 csv ⽂件 **/public class ReadAndWriterCsvFlie { // 需要写⼊的 csv ⽂件路径 public static final String WRITE_CSV_FILE_PATH = \"/Users/a123123/Work/flink-study/write_test.csv\"; /** * ⽣成 csv ⽂件 */ public static void writeCsvFile(String writeCsvFilePath) { // 创建 CSV Writer 对象, 参数说明(写⼊的⽂件路径,分隔符,编码格式) CsvWriter csvWriter = new CsvWriter(writeCsvFilePath,',', Charset.forName(\"GBK\")); try { // 定义 header 头 String[] headers = {\"订单号\⽤户名\⽀付⾦额\ // 写⼊ header 头 csvWriter.writeRecord(headers); // 写⼊⼀千条记录 for (int i = 0; i < 1000; i++) { String orderNum = UUID.randomUUID().toString(); String userName = \"⽤户\" + i; String payMoney = String.valueOf(i); // 写⼊⾏

因篇幅问题不能全部显示,请点此查看更多更全内容