Java读写CSV格式文件(opencsv)

原创 2014年07月20日 17:55:11

使用opencsv(opencsv-2.3.jar),下载地址:http://sourceforge.net/projects/opencsv/files/latest/download

一,读取CSV格式文件

import java.io.File;
import java.io.FileReader;
import java.util.List;

import au.com.bytecode.opencsv.CSVReader;

public class ReadCSV {
	public static void main(String[] args) throws Exception {
		File file = new File("e:\\read.csv");
		FileReader fReader = new FileReader(file);
		CSVReader csvReader = new CSVReader(fReader);
		String[] strs = csvReader.readNext();
		if(strs != null && strs.length > 0){
			for(String str : strs)
				if(null != str && !str.equals(""))
					System.out.print(str + " , ");
			System.out.println("\n---------------");
		}
		List<String[]> list = csvReader.readAll();
		for(String[] ss : list){
			for(String s : ss)
				if(null != s && !s.equals(""))
					System.out.print(s + " , ");
			System.out.println();
		}
		csvReader.close();
	}
}

执行结果如下:

编号 , 姓名 , 备注 , 
---------------
1 , Li , 123456 , 
2 , Sean , 

CSVReader.close()方法本质上是关闭传入其中的FileReader:

private BufferedReader br;
    
public CSVReader(Reader reader, char separator, char quotechar, 
		char escape, int line, boolean strictQuotes, boolean ignoreLeadingWhiteSpace) {
	this.br = new BufferedReader(reader);
	this.parser = new CSVParser(separator, quotechar, escape, 
			strictQuotes, ignoreLeadingWhiteSpace);
	this.skipLines = line;
}

public void close() throws IOException{
	br.close();
}

当然分隔符可以不是默认的逗号,只需在创建CSVReader时指定其分隔符即可

CSVReader csvReader = new CSVReader(fReader, ';');

二,写CSV格式文件

import java.io.File;
import java.io.FileWriter;
import java.io.Writer;

import au.com.bytecode.opencsv.CSVWriter;

public class WriteCSV {
	public static void main(String[] args) throws Exception {
		File file = new File("e:\\write.csv");
		Writer writer = new FileWriter(file);
		CSVWriter csvWriter = new CSVWriter(writer, ',');
		String[] strs = {"abc" , "abc" , "abc"};
		csvWriter.writeNext(strs);
		csvWriter.close();
	}
}

执行结果如下:

CSVWrite的构造方法如下:

public static final char DEFAULT_QUOTE_CHARACTER = '"';
 
public CSVWriter(Writer writer, char separator) {
	this(writer, separator, DEFAULT_QUOTE_CHARACTER);
}

双引号被用作默认的引用符(具体什么意思不清楚)

修改一下CSVReader的初始化方式:

CSVWriter csvWriter = new CSVWriter(writer, ',' , '\\');

CSVReader中使用的是CSVParser中的静态变量:

public static final char DEFAULT_QUOTE_CHARACTER = '"';

public static final char DEFAULT_ESCAPE_CHARACTER = '\\';

但是在CSVWriter中:

public static final char DEFAULT_QUOTE_CHARACTER = '"';
   
public static final char DEFAULT_ESCAPE_CHARACTER = '"';

看来应该是作者的疏忽

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

利用JavaCSV API来读写csv文件

利用JavaCSV API读写csv文件,这是一个成熟的三方工具包,可以极大提升开发者开发效率。...
  • loongshawn
  • loongshawn
  • 2016年12月01日 16:25
  • 20381

利用Javacsv实现Java读写csv文件

今天跟大家分享一个利用外部Jar包来实现Java操作CSV文件 一.资源下载 1.直接下载Jar包: http://central.maven.org/maven2/net/sourceforg...
  • StemQ
  • StemQ
  • 2017年03月07日 23:03
  • 6692

java读写CSV文件的两种方法

BufferedWriter writer =new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "GBK...
  • KinseyGeek
  • KinseyGeek
  • 2017年04月18日 23:16
  • 1840

Java生成CSV文件

1、新建CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils; import java.io.BufferedWriter; ...
  • xuxu198899223
  • xuxu198899223
  • 2014年07月24日 10:22
  • 6533

java 解析csv

opencsvjava读取csv的类库主要有两种,opencsv和javacsv,研究发现,javacsv最后一次更新是2014-12-10,很久不维护了。opencsv是apache的项目,并且至今...
  • wangjun5159
  • wangjun5159
  • 2016年06月13日 10:42
  • 3688

java 读写csv

javacsv是国外开发的一个比较好的操作csv文件的API,这里简单讲一下用法。 先下载javacsv2.0.zip的文件,解压后,把javacsv.jar 添加到项目中。 下面是官方网址: ...
  • snn1410
  • snn1410
  • 2013年07月09日 12:02
  • 6603

用javacsv API 来操作csv文件

javacsv是国外开发的一个比较好的操作csv文件的API,这里简单讲一下用法。 先下载javacsv2.0.zip的文件,解压后,把javacsv.jar 添加到项目中。  本站下载地址: ...
  • a9529lty
  • a9529lty
  • 2014年12月01日 16:19
  • 16015

java操作csv文档通用工具类

package cn.com.test.annotation; import java.lang.annotation.ElementType; import java.lang.annotatio...
  • Rodge_Rom
  • Rodge_Rom
  • 2017年12月25日 23:46
  • 177

Java opencsv 生成、读取、下载、删除CSV文件

1. 利用opencsv包中的CSVWriter类,生成csv文件 import java.io.File; import java.io.FileOutputStream; import ja...
  • cat_book_milk
  • cat_book_milk
  • 2016年10月28日 10:08
  • 2646

浅谈Java读取Csv实践(javacsv)

CSV是逗号分隔型取值格式的英文简称(英文全称为Comma Separated Values),是一种纯文本格式,用来存储数据。本文主要介绍Java读取Csv的方法。 AD: 在CSV中,数据...
  • chengly0129
  • chengly0129
  • 2015年11月09日 21:14
  • 3191
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java读写CSV格式文件(opencsv)
举报原因:
原因补充:

(最多只允许输入30个字)