逗号分隔值(CSV)文件,将数据逐列存储,并用分隔符将其分开(通常是逗号",")。可直接使用记事本打开查看。

有很多种读写CSV文件的方法,这里介绍的是JavaCSV。Java CSV是一个小型的快速开源Java库,用于读取和写入CSV和纯分隔文本
文件。可以处理各种CSV文件,文本限定,Excel格式等。

JavaCSV 下载

使用这个jar包需要添加依赖,方法就不必赘述了,网上大批教程,需要的可以自己搜索。

直接上代码

package com.example.myapplication;import java.io.IOException;
import java.nio.charset.Charset;
import com.csvreader.CsvReader;
import com.csvreader.CsvWriter;public class MainActivity {public void readCSV() {//读CSVtry {//filePath是CSV文件的全路径,根据自己的实际情况填写CsvReader csvReader = new CsvReader("filePath");//读表头csvReader.readHeaders();while (csvReader.readRecord()) {//读取一整行System.out.println(csvReader.getRawRecord());//读取这行的某列,序号从0开始,csvReader.get(0)读取的是这行的第一列System.out.println(csvReader.get(0));//读取这行的某列,column是列名,根据实际情况填写System.out.println(csvReader.get("column"));}} catch (IOException e) {e.printStackTrace();}}public void writeCSV() {//写CSVtry {//filePath是CSV文件的全路径,根据自己的实际情况填写CsvWriter csvWriter = new CsvWriter("filePath");//写入一行String s[] = {"1", "2"};csvWriter.writeRecord(s);} catch (IOException e) {e.printStackTrace();}}
}

上述代码可以完成英文CSV文件的读写,但读写中文将出现乱码,在网上找了很久也没找到解决方案。

后来查看JavaCSV源码的时候,看到了这个构造函数

 public CsvReader(String var1, char var2, Charset var3) throws FileNotFoundException {if (var1 == null) {throw new IllegalArgumentException("Parameter fileName can not be null.");} else if (var3 == null) {throw new IllegalArgumentException("Parameter charset can not be null.");} else if (!(new File(var1)).exists()) {throw new FileNotFoundException("File " + var1 + " does not exist.");} else {this.fileName = var1;this.userSettings.Delimiter = var2;this.charset = var3;this.isQualified = new boolean[this.values.length];}}
public CsvReader(String var1, char var2) throws FileNotFoundException {this(var1, var2, Charset.forName("ISO-8859-1"));}public CsvReader(String var1) throws FileNotFoundException {this(var1, ',');}

这一下就明了了。var1是文件的路径,var2是分隔符,var3是字符编码集。

开始我们使用的是单参构造函数,它会调用双参构造函数,双参构造函数再调用三参构造函数。

这样的话我们的默认编码集就是"ISO-8859-1",但这默认的编码集并不一定是我们文件的实际编码集。

如果不想遇见中文乱码的情况,就要确定文件实际使用的编码集(可以用记事本另存为查看),并用该编码集作为var3参数来创建对象。

下附代码

package com.example.myapplication;import java.io.IOException;
import java.nio.charset.Charset;
import com.csvreader.CsvReader;
import com.csvreader.CsvWriter;public class MainActivity {public void readCSV() {try {//filePath是CSV文件的全路径,utf-8是编码集,根据自己的实际情况填写CsvReader csvReader = new CsvReader("filePath",',', Charset.forName("utf-8"));//读表头csvReader.readHeaders();while (csvReader.readRecord()) {//读取一整行System.out.println(csvReader.getRawRecord());//读取这行的某列,序号从0开始,csvReader.get(0)读取的是这行的第一列System.out.println(csvReader.get(0));//读取这行的某列,column是列名,根据实际情况填写System.out.println(csvReader.get("column"));}} catch (IOException e) {e.printStackTrace();}}public void writeCSV() {try {//filePath是CSV文件的全路径,GBK是编码集,根据自己的实际情况填写。CsvWriter csvWriter = new CsvWriter("filePath",',',Charset.forName("GBK"));//写入一行String s[] = {"1", "2"};csvWriter.writeRecord(s);} catch (IOException e) {e.printStackTrace();}}
}

JavaCSV 读写csv文件,解决中文乱码问题相关推荐

  1. java properties中文_Java读写.properties文件解决中文乱码问题

    一般使用到properties配置文件,一般都是在spring项目里面,直接由框架帮你读,当然,你也得考虑到编码的问题. 但是现在要是要求使用Java直接读写properties文件,就发现很多的问题 ...

  2. csv导出文件解决中文乱码和文件名空格问题

    csv导出文件解决中文乱码和文件名空格问题 开发环境 前端:Vue 后端:Java 问题的出现: 1.csv的文件中文内容 excel打开是乱码,wps没问题(wps会进行不同的编码转换,excel不 ...

  3. php utf-8读取,PHP读取文件,解决中文乱码UTF-8的方法分析

    PHP读取文件,解决中文乱码UTF-8的方法分析,方法,中文,操作技巧,文本,本文 PHP读取文件,解决中文乱码UTF-8的方法分析 易采站长站,站长之家为您整理了PHP读取文件,解决中文乱码UTF- ...

  4. php读取pdf文件乱码_PHP读取文件,解决中文乱码UTF-8的方法分析

    本文实例讲述了PHP读取文件,解决中文乱码UTF-8的方法.分享给大家供大家参考,具体如下: $opts = array( 'file' => array( 'encoding' => & ...

  5. php 读取pdf文件内容 显示乱码,PHP读取文件,解决中文乱码UTF-8的方法分析

    本文实例讲述了PHP读取文件,解决中文乱码UTF-8的方法.分享给大家供大家参考,具体如下: $opts = array( "file" => array( "en ...

  6. python存成csv文件时中文乱码_Python在向CSV文件写中文时乱码的处理办法

    前言 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode.decode. 当list.tuple.dict里面有中文时,打印出来的是Unicode编码,这个是无解的. 对 ...

  7. java解压多目录Zip文件(解决中文乱码问题)--转载

    原文地址:http://zhangyongbo.iteye.com/blog/1749439 import java.io.BufferedOutputStream; import java.io.F ...

  8. c执行cmd pdf2swf_swftools实现pdf文档转swf文件 解决中文乱码

    通过swftools实现转换 2.安装完成之后,在命令行跳到安装目录,执行pdf2swf.exe d:\sss\123.pdf  -o 123.swf 如果123.pdf为多页的,则pdf2swf.e ...

  9. WPS导入csv文件出现中文乱码

    首先,新建一个空的execl表格. 然后,点击上面"数据"那一栏.找到"导入数据". 选择"直接打开数据文件",然后再点击"选择数 ...

最新文章

  1. SUBSTRING函數用法
  2. GO是更好的编程语言吗?
  3. python开发安卓程序-如何使用python开发Android手机应用?
  4. gzip、bzip2和tar
  5. html 前端分页代码怎么写,前端js写分页
  6. 《假如编程是魔法之零基础看得懂的Python入门教程 》——(六)精简魔法更强大
  7. go 输入输出流(ioutil)
  8. it男java_java-学习8
  9. 2016-2017-2 《Java 程序设计》课堂实践项目
  10. oracle数据库英语,Oracle的数据库管理功能的学习英语
  11. 软件工程造价师好考吗?
  12. ios虚拟服务器降级,iOS降级教程
  13. 2021-2027全球及中国工业物联网通信产品行业研究及十四五规划分析报告
  14. MAYA安装未完成,某些产品无法安装的解决方法
  15. matlab 文本框方向,ppt文本框文字方向为所有文字旋转的设置方法
  16. 实现透明效果时,开启深度测试,关闭深度写入
  17. 华为手机灭屏也能看时间吗?很多技巧你不知道,2分钟就能学会
  18. 用excel打开一个xls文件进度到36%就不动了
  19. mysql地理坐标_mysql中如何将地理坐标拆成经度和纬度两份?
  20. 汽车软件竞争进入“深水区”,诚迈科技如何抢滩?

热门文章

  1. Leetcode 61~80
  2. zcu102_1_PS端LED开关
  3. Arduino整型字符串互转
  4. 哈希消息认证码HmacSHA256-javascript版
  5. 【ORACLE】错误代码大全
  6. 分布式技术高频面试考点梳理
  7. cmmi实践访谈测试ppt_CMMI模型基础知识考试试题-(标准答案).xls
  8. 人民币纸币采用防伪油墨
  9. 大数据技术之Clickhouse
  10. hdu5148 Cities