最近工作需要,需要读写CSV文件的数据,简单封装了一下

依赖

读写CSV文件只需引用javacsv这个依赖就可以了

net.sourceforge.javacsv

javacsv

2.0

读文件

/**

* Read from CSV

*

* @param separator 分隔符

* @param filePath 文件路径

* @return

* */

public static List readFromCSV(Character separator, String filePath) {

CsvReader reader = null;

List result = new ArrayList<>();

try {

//如果生产文件乱码,windows下用gbk,linux用UTF-8

reader = new CsvReader(filePath, separator, Charset.forName("GBK"));

// 读取标题

reader.readHeaders();

// 逐条读取记录,直至读完

while (reader.readRecord()) {

//读取第一例

reader.get(0);

//读取指定名字的列

reader.get("");

}

} catch (Exception e) {

e.printStackTrace();

} finally {

if (null != reader) {

reader.close();

}

}

return result;

}

因为甜大王比较喜欢将读取的一列封装为一个Object,同时为了工具更通用返回的结果类型是一个List

写文件

/**

* Write into CSV

*

* @param separator 分隔符

* @param filePath 文件路径

* @param strList 对应CSV中的一行记录

* */

public static void writeIntoCSV(Character separator, String filePath, List> strList) {

CsvWriter csvWriter = null;

try {

// 创建CSV写对象

csvWriter = new CsvWriter(filePath, separator, Charset.forName("GBK"));

// 写标题

//String[] headers = {"FileName","FileSize","FileMD5"};

//csvWriter.writeRecord(headers);

for (List list : strList) {

String[] writeLine = new String[list.size()];

list.toArray(writeLine);

csvWriter.writeRecord(writeLine);

}

csvWriter.close();

} catch (IOException e) {

e.printStackTrace();

} finally {

if (null != csvWriter) {

csvWriter.close();

}

}

}

完整代码

public class CSVTool {

/**

* Read from CSV

*

* @param separator 分隔符

* @param filePath 文件路径

* @return

* */

public static List readFromCSV(Character separator, String filePath) {

CsvReader reader = null;

List result = new ArrayList<>();

try {

//如果生产文件乱码,windows下用gbk,linux用UTF-8

reader = new CsvReader(filePath, separator, Charset.forName("GBK"));

// 读取标题

reader.readHeaders();

// 逐条读取记录,直至读完

while (reader.readRecord()) {

//读取第一例

reader.get(0);

//读取指定名字的列

reader.get("");

}

} catch (Exception e) {

e.printStackTrace();

} finally {

if (null != reader) {

reader.close();

}

}

return result;

}

/**

* Write into CSV

*

* @param separator 分隔符

* @param filePath 文件路径

* @param strList 对应CSV中的一行记录

* */

public static void writeIntoCSV(Character separator, String filePath, List> strList) {

CsvWriter csvWriter = null;

try {

// 创建CSV写对象

csvWriter = new CsvWriter(filePath, separator, Charset.forName("GBK"));

// 写标题

//String[] headers = {"FileName","FileSize","FileMD5"};

//csvWriter.writeRecord(headers);

for (List list : strList) {

String[] writeLine = new String[list.size()];

list.toArray(writeLine);

csvWriter.writeRecord(writeLine);

}

csvWriter.close();

} catch (IOException e) {

e.printStackTrace();

} finally {

if (null != csvWriter) {

csvWriter.close();

}

}

}

}

附:[完整代码]()

java 打开scv 文件_JAVA读写CSV文件相关推荐

  1. python本地读csv文件_python读写csv文件方法详细总结

    python提供了大量的库,可以非常方便的进行各种操作,现在把python中实现读写csv文件的方法使用程序的方式呈现出来. 在编写python程序的时候需要csv模块或者pandas模块,其中csv ...

  2. python怎么读取csv文件-python读写csv文件方法详细总结

    python提供了大量的库,可以非常方便的进行各种操作,现在把python中实现读写csv文件的方法使用程序的方式呈现出来. 在编写python程序的时候需要csv模块或者pandas模块,其中csv ...

  3. python pandas csv 写文件_Pandas读写CSV文件的方法介绍(附代码)

    本篇文章给大家带来的内容是关于Pandas读写CSV文件的方法介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 读csv:使用pandas读取import pandas ...

  4. JAVA编程TXT文件_java读写txt文件的方法

    java读写txt文件的方法 发布时间:2020-06-26 15:54:02 来源:亿速云 阅读:111 作者:Leah 本篇文章为大家展示了java读写txt文件的方法,代码简明扼要并且容易理解, ...

  5. java 生成csv文件_Java生成CSV文件实例详解

    本文实例主要讲述了java生成csv文件的方法,具体实现步骤如下: 1.新建csvutils.java文件: package com.saicfc.pmpf.internal.manage.utils ...

  6. python导入csv文件-python读写csv文件

    今天闲来无事,写了会CSV,简单总结下csv具体操作 什么是csv 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本 ...

  7. python为什么找不到csv文件_python读写csv文件的方法(还没试,先记录一下)

    该csv模块定义了以下功能: csv.reader(csvfile,dialect ='excel',** fmtparams) 返回一个reader对象,它将迭代给定csvfile中的行. csvf ...

  8. python readcsv读取gbk编码文件_python读写csv文件

    今天闲来无事,写了会CSV,简单总结下csv具体操作 什么是csv 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本 ...

  9. java dbf文件_Java读写dbf文件

    展开全部 Java读取DBF文件,需要加载开源jar包JavaDBF.jar,然后使用62616964757a686964616fe4b893e5b19e31333337613133里面的方法进行读写 ...

  10. java 写入xml文件_java读写xml文件

    要读的xml文件 李华姓名> 14年龄> 学生> 张三姓名> 16年龄> 学生> 学生花名册> package xml; import java.io.Fil ...

最新文章

  1. 帮AI体检看病一条龙服务,阿里发布“AI安全诊断大师”
  2. vivado VIO (virtual input output)虚拟IO的使用
  3. mysql 返回最大值列名_多列求最大值列和列名
  4. Spring Cloud【Finchley】-04使用Ribbon实现客户端负载均衡
  5. 又一位纯手工打造CPU的牛人,并且汇编语言实现类Unix系统,支持文件系统
  6. 2 image pil 转_pdf转图片,php语言和Java语言的两种方法
  7. 为学好计算机 要采取什么措施,计算机概念教学的内容及对策
  8. Bootstrap3 排版-地址
  9. 构造函数和构造代码块
  10. python中functools_Python中functools模块的常用函数解析
  11. ORA-01033 ORACLE initialization or shutdow in progress
  12. 最好用的微信编辑器(图文排版工具) -构思微信编辑器
  13. 爬虫福利二之妹子图网批量下载MM
  14. pdf打开错误之读取本文档时出现问题(14)
  15. 区块链上的中国?2018见分晓
  16. writeup wyu-ctf
  17. ios 计算代码耗时
  18. Word控件Spire.Doc 【Table】教程(15):如何在 C# 中对齐表格
  19. 如果同步块内的线程抛出异常会发生什么?
  20. android无线充电器推荐,和安卓通用的无线充电器门派推荐

热门文章

  1. ae运动模糊插件安装教程_AEPR运动模糊插件(RSMB) REVisionFX ReelSmart Motion Blur Pro v4.2.3...
  2. C# .NET 爬虫抓取京东商城所有商品分类
  3. 【节能学院】油烟浓度在线监测仪在浙江省某市餐饮油烟监测治理项目中的应用
  4. winform调用大华相机
  5. Jmeter基础篇(01):如何进行post接口压力测试
  6. android 圆形自定义进度条,Android自定义漂亮的圆形进度条
  7. 素数快速求法 -- 筛法求素数
  8. Sketch 67.2 简体中文版 最佳Mac产品原型设计工具
  9. html在线预览wordexcel文档,直接在线预览Word、Excel、TXT文件之ASP.NET
  10. Python爬虫案例:下载酷某音乐文件