Java:读写CSV格式文件(opencsv)

原创 2016年10月12日 21:48:44

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

一,读取CSV格式文件

[java] view plain copy
  1. import java.io.File;  
  2. import java.io.FileReader;  
  3. import java.util.List;  
  4.   
  5. import au.com.bytecode.opencsv.CSVReader;  
  6.   
  7. public class ReadCSV {  
  8.     public static void main(String[] args) throws Exception {  
  9.         File file = new File("e:\\read.csv");  
  10.         FileReader fReader = new FileReader(file);  
  11.         CSVReader csvReader = new CSVReader(fReader);  
  12.         String[] strs = csvReader.readNext();  
  13.         if(strs != null && strs.length > 0){  
  14.             for(String str : strs)  
  15.                 if(null != str && !str.equals(""))  
  16.                     System.out.print(str + " , ");  
  17.             System.out.println("\n---------------");  
  18.         }  
  19.         List<String[]> list = csvReader.readAll();  
  20.         for(String[] ss : list){  
  21.             for(String s : ss)  
  22.                 if(null != s && !s.equals(""))  
  23.                     System.out.print(s + " , ");  
  24.             System.out.println();  
  25.         }  
  26.         csvReader.close();  
  27.     }  
  28. }  

执行结果如下:

[plain] view plain copy
  1. 编号 , 姓名 , 备注 ,   
  2. ---------------  
  3. 1 , Li , 123456 ,   
  4. 2 , Sean ,   

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

[java] view plain copy
  1. private BufferedReader br;  
  2.       
  3. public CSVReader(Reader reader, char separator, char quotechar,   
  4.         char escape, int line, boolean strictQuotes, boolean ignoreLeadingWhiteSpace) {  
  5.     this.br = new BufferedReader(reader);  
  6.     this.parser = new CSVParser(separator, quotechar, escape,   
  7.             strictQuotes, ignoreLeadingWhiteSpace);  
  8.     this.skipLines = line;  
  9. }  
  10.   
  11. public void close() throws IOException{  
  12.     br.close();  
  13. }  

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

[java] view plain copy
  1. CSVReader csvReader = new CSVReader(fReader, ';');  

二,写CSV格式文件

[java] view plain copy
  1. import java.io.File;  
  2. import java.io.FileWriter;  
  3. import java.io.Writer;  
  4.   
  5. import au.com.bytecode.opencsv.CSVWriter;  
  6.   
  7. public class WriteCSV {  
  8.     public static void main(String[] args) throws Exception {  
  9.         File file = new File("e:\\write.csv");  
  10.         Writer writer = new FileWriter(file);  
  11.         CSVWriter csvWriter = new CSVWriter(writer, ',');  
  12.         String[] strs = {"abc" , "abc" , "abc"};  
  13.         csvWriter.writeNext(strs);  
  14.         csvWriter.close();  
  15.     }  
  16. }  

执行结果如下:

CSVWrite的构造方法如下:

[java] view plain copy
  1. public static final char DEFAULT_QUOTE_CHARACTER = '"';  
  2.    
  3. public CSVWriter(Writer writer, char separator) {  
  4.     this(writer, separator, DEFAULT_QUOTE_CHARACTER);  
  5. }  

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

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

[java] view plain copy
  1. CSVWriter csvWriter = new CSVWriter(writer, ',' , '\\');  

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

[java] view plain copy
  1. public static final char DEFAULT_QUOTE_CHARACTER = '"';  
  2.   
  3. public static final char DEFAULT_ESCAPE_CHARACTER = '\\';  

但是在CSVWriter中:

[java] view plain copy
  1. public static final char DEFAULT_QUOTE_CHARACTER = '"';  
  2.      
  3. public static final char DEFAULT_ESCAPE_CHARACTER = '"';  

看来应该是作者的疏忽


PS:当CSV的记录有空格时,这个工具并不能够识别,推荐我的另外一篇文章javacsv

版权声明:看完觉得好的。请留个脚印,证明你来过

相关文章推荐

Java读写CSV格式文件(opencsv)

使用,下载地址: 一,读取CSV

利用JavaCSV API来读写csv文件

利用JavaCSV API读写csv文件,这是一个成熟的三方工具包,可以极大提升开发者开发效率。...

学习Java JDBC,看这篇就够了

JDBC (Java DB Connection)---Java数据库连接 JDBC是一种可用于执行SQL语句的JAVA API(ApplicationProgramming Interface应用...
  • ljheee
  • ljheee
  • 2016年03月26日 20:54
  • 9424

Java读写CSV格式文件(opencsv)

原文地址:http://blog.csdn.net/a19881029/article/details/37959109 使用opencsv(opencsv-2.3.jar),下载地址:ht...

更方便地进行CSV格式文件读写

  • 2013年02月22日 09:39
  • 3KB
  • 下载

使用Spark读写CSV格式文件

CSV格式的文件也称为逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号。在本文中的CSV格式的数据就不是简单的逗号分割的),其文件以纯...

使用Spark读写CSV格式文件

转载地址:http://blog.csdn.net/zy_zhengyang/article/details/49382715 CSV格式的文件也称为逗号分隔值(Comma-Separated Va...
  • ljh0302
  • ljh0302
  • 2016年07月11日 11:07
  • 1005

用opencsv和用Bufferedreader/writer进行csv文件的读写及简单处理

最近要大量处理一批.csv文件,由于收集到的数据大部分是9列,但是有的行的列数大于9,因此想写个程序去批处理这些.csv文件,使得处理好的文件可以是规则的,方便导入数据库。 方法一: 首先我想到了...

openCSV读写CSV文件

使用openCSV读写CSV文件的方法和例子,需注意UTF-8的BOM标识。可自动映射csv文件与javabean,方便读写操作。...

用opencsv文件读写CSV文件

首先明白csv文件长啥样儿: 用excel打开就变成表格了,看不到细节推荐用其它简单粗暴一点儿的编辑器,比如Notepad++, csv文件内容如下: csv文件默认用逗号分...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java:读写CSV格式文件(opencsv)
举报原因:
原因补充:

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