java操作csv文件(读、写)

news/2024/10/18 2:31:00/

    今天在做项目的时候,发现使用POI无法解析以csv文件结尾的文件,虽然csv文件能用Excel打开,但是csv文件没有像Excel一样有规定的电子表格形式,故使用POI无法解析csv文件,在网上找了一下,发现java有提供javacsv文件来帮忙解析csv文件。

    CSV是Comma Separated Values(逗号分隔值)的英文缩写,通常都是纯文本文件。首先先来了解csv文件的基本格式:

制造商
型号
说明
价值
1997
Ford
E350
ac, abs, moon
3000.00
1999
Chevy
Venture “Extended Edition”

4900.00
1999
Chevy
Venture “Extended Edition, Very Large”

5000.00
1996
Jeep
Grand Cherokee
MUST SELL!
air, moon roof, loaded
4799.00
上面表格内容若以CSV格式表示就会像下列:
年,制造商,型号,说明,价值
1997,Ford,E350,”ac, abs, moon”,3000.00
1999,Chevy,”Venture “”Extended Edition”“”,”“,4900.00
1999,Chevy,”Venture “”Extended Edition, Very Large”“”,”“,5000.00
1996,Jeep,Grand Cherokee,”MUST SELL!air, moon roof, loaded”,4799.00

java如何操作读写csv呢?可以使用opencsv、javacsv等,本文主要介绍javacsv操作csv文件。

import com.csvreader.CsvReader;  
import java.nio.charset.Charset;  
import java.util.ArrayList;  
import java.util.List;  public class CsvUtil {  //读取csv文件  public List<String[]> readCsv(String filePath) throws Exception {  List<String[]> csvList = new ArrayList<String[]>();  if (isCsv(filePath)) {  CsvReader reader = new CsvReader(filePath, ',', Charset.forName("GBK"));  reader.readHeaders(); // 跳过表头   如果需要表头的话,不要写这句。  while (reader.readRecord()) { //逐行读入除表头的数据  csvList.add(reader.getValues());  }  reader.close();  } else {  System.out.println("此文件不是CSV文件!");  }  return csvList;  }  //判断是否是csv文件  private boolean isCsv(String fileName) {  return fileName.matches("^.+\\.(?i)(csv)$");  }  //方法测试  public static void main(String[] args) throws Exception {  String filepath = "C:/群组.csv";  CsvUtil su = new CsvUtil();  List<String[]> list = su.readCsv(filepath);  for (int r = 0; r < list.size(); r++) {  for (int c = 0; c < list.get(r).length; c++) {  String cell = list.get(r)[c];  System.out.print(cell + "\t");  }  System.out.print("\n");  }  }  
}  

写数据到csv文件

/**   * 写入CSV文件   */    public static void WriteCsv(){    try {    String csvFilePath = "C:/群组.csv";    CsvWriter wr =new CsvWriter(csvFilePath,',',Charset.forName("SJIS"));//日文编码  String[] contents = {"警告信息","非法操作","没有权限","操作失败"};                        wr.writeRecord(contents);    wr.close();    } catch (IOException e) {    e.printStackTrace();    }    } 

参考博客:http://blog.csdn.net/yaohucaizi/article/details/8817920


http://www.ppmy.cn/news/589286.html

相关文章

CSV文件格式

CSV &#xff08;逗号分隔值文件格式&#xff09; 编辑 逗号分隔值&#xff08;Comma-Separated Values&#xff0c; CSV&#xff0c;有时也称为 字符分隔值&#xff0c;因为分隔字符也可以不是逗号&#xff09;&#xff0c;其文件以纯文本形式存储表格数据&#xff08;数字…

家庭云及其它(中)

硬件 基本上0bug老师对自己的需求还是比较清楚的&#xff0c;所以没有选择NAS产品&#xff0c;也没有选择企业级服务器都是很正确的。当然选择APU算是一个小失误&#xff0c;这个方案更适合做HTPC&#xff0c;而不是家用服务器&#xff0c;N550不论从功耗还是发热上&#xff0…

Hive 处理CSV格式文件数据

一般情况下对于CSV格式文件数据&#xff0c;有多种第三方SerDer来处理。本文采用CSVSerDe&#xff1a; 一、添加第三方SerDe 首先在Hive classpath中添加第三方SerDe JAR包&#xff0c;命令如下&#xff1a; hive> add jar /home/hadoopUser/cloud/hive/apache-hive-0.13.…

中兴echat_中兴高达推出新一代eChat小先锋e350

原标题&#xff1a;中兴高达推出新一代eChat小先锋e350 公网集群领域有一款机型人称"小钢炮"&#xff0c;发货量破30万台&#xff0c;广泛应用于城管、物业、交警、旅游及大型赛事&#xff0c;成为一个有口皆碑的传奇&#xff0c;获得过无数赞誉和荣耀。时至今日G180…

主控88NV1120开卡工具教程,镁光颗粒无法格式化、掉盘、开卡失败的偶然解决(修复)方法

事件背景&#xff1a;我自己之前有个usb3.0转SATA的移动硬盘&#xff0c;里面装着一个160G的机械硬盘&#xff0c;但几次霍霍下&#xff0c;坏块一堆&#xff0c;基本上难以正常使用&#xff0c;于是海鲜市场花了三十多淘了块240G的掉盘的SSD&#xff0c;品牌&#xff1a;金胜E…

c语言电子秤原理,电子秤设计电路图汇总(六款模拟电路设计原理图详解)

电子秤设计电路图(一) 工作原理 数显电子秤电路原理如图所示&#xff0c;其主要部分为电阻应变式传感器R1及IC2、IC3组成的测量放大电路&#xff0c;和IC1及外围元件组成的数显面板表。传感器R1采用E350~ZAA箔式电阻应变片&#xff0c;其常态阻值为350O。测量电路将R1产生的电阻…

python数据读取与可视化(1)——CSV格式

CSV格式文件读取与可视化 CSV格式文件读取与可视化 一 CSV二 如何得到CSV三 CSV文件的处理1 导入文件2 读取数据3 数据的可视化一些小问题的处理一点优化 一 CSV CSV文件以纯文本的形式储存数字和字母,各个数据之间一般用逗号作为分隔符。是一种通用的&#xff0c;相对简单的文…

.CSV文件 逗号分隔值

逗号分隔值&#xff08;Comma-Separated Values&#xff0c;CSV&#xff0c;有时也称为字符分隔值&#xff0c;因为分隔字符也可以不是逗号&#xff09;&#xff0c;其文件以纯文本形式存储表格数据&#xff08;数字和文本&#xff09;。纯文本意味着该文件是一个字符序列&…