在读写CSV文件是大家可能到会有这样的纠结:到底是用第三方的jar包,还是自己写个类呢?如果用第三方的jar包,网上的资源有的特别大,可能就是个几百K的程序,却要附带一个和自己差不多大的jar包,得不偿失。如果自己写的话,又很难完美的处理各种异常。辛亏遇到这么一个好用的第三方jar包,只有14K,完美的解决了这个问题。
javacsv2.1 下载地址:http://sourceforge.net/projects/javacsv/files/
CSV文件内容:
Name | class | number | sex |
张三 | 三一 | 67 | 男 |
李四 | 四二 | 68 | 男 |
王五 | 六四 | 69 | 男 |
读取CSV文件
1 //生成CsvReader对象,以,为分隔符,GBK编码方式 2 CsvReader r = new CsvReader("F://Eclipse//Test//src//info.csv", ',',Charset.forName("GBK")); 3 //读取表头 4 r.readHeaders(); 5 //逐条读取记录,直至读完 6 while (r.readRecord()) { 7 //读取一条记录 8 System.out.println(r.getRawRecord()); 9 //按列名读取这条记录的值 10 System.out.println(r.get("Name")); 11 System.out.println(r.get("class")); 12 System.out.println(r.get("number")); 13 System.out.println(r.get("sex")); 14 } 15 r.close();
写入CSV文件,无追加功能,所以每次都得重新写(包括表头):
1 CsvWriter wr =new CsvWriter("F://Eclipse//Test//src//info.csv",',',Charset.forName("GBK")); 2 String[] contents = {"Lily","五一","90","女"}; 3 wr.writeRecord(contents); 4 wr.close();