opencsv方式读取csv文件,详解,示例
来源:互联网 发布:怎么用u盘导出考勤数据 编辑:程序博客网 时间:2024/06/08 12:55
1.opencsv官网:http://opencsv.sourceforge.net/
jar包:opencsv-2.3.jar
下载地址:http://sourceforge.net/projects/opencsv/files/latest/download
2.读取CSV文件
package com.szaisino.common.opencsv;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import au.com.bytecode.opencsv.CSVReader;/** * * <b>所属模块:</b>发票处理系统.公用模块<br/> * <b>类名称:</b>ReadCSVFile<br/> * <b>类描述:</b> 读取CSV文件 <br/> * <b>版本:</b>V1.0<br/> * <b>创建人:</b><a href="mailto:han_huayi@163.com">牧羊仒</a><br/> * <b>创建时间:</b>2016年4月20日 下午5:09:27<br/> */public class ReadCSVFile {private static final String ADDRESS_FILE = "d:\\addresses.csv"; /** * * 读取csv中的内容 * * @return * @throws IOException * @return List<String[]> * @exception 异常描述 * @see */public static List<String[]> readCSVFile(File file, int startRow, String characters) throws IOException{ List<String[]> strArrayList = new ArrayList<String[]>(); CSVReader reader = null; if (",".equalsIgnoreCase(characters)){ reader = new CSVReader(new FileReader(file)); } else { //带分隔符 reader = new CSVReader(new FileReader(file),characters.toCharArray()[0]); } String[] nextLine; int i = 1; while ((nextLine = reader.readNext()) != null) {// System.out.println("Name: [" + nextLine[0] + "]\nAddress: [" + nextLine[1] + "]\nEmail: [" + nextLine[2] + "]"); if (i>=startRow) strArrayList.add(nextLine); i++; } return strArrayList; } /** * * 读取csv中的内容 * Map key:csvFileFirstRow csv文件,表头标题; * key:csvFileContent csv文件,内容(除去表头内容) * * @param file csv文件对象 * @param startRow 开始行 * @param characters 分隔符 * @return * @throws IOException * @return Map<String,List<String[]>> * @exception 异常描述 * @see */public static Map<String, List<String[]>> readCSVFileWithMap(File file, int startRow, String characters) throws IOException{List<String[]> csvFileFirstRowArrayList = new ArrayList<String[]>(); List<String[]> strArrayList = new ArrayList<String[]>(); CSVReader reader = null; if (",".equalsIgnoreCase(characters)){ reader = new CSVReader(new FileReader(file)); } else { //带分隔符 reader = new CSVReader(new FileReader(file),characters.toCharArray()[0]); } String[] nextLine; int i = 1; while ((nextLine = reader.readNext()) != null) {// System.out.println("Name: [" + nextLine[0] + "]\nAddress: [" + nextLine[1] + "]\nEmail: [" + nextLine[2] + "]"); if (i>=startRow) strArrayList.add(nextLine); else csvFileFirstRowArrayList.add(nextLine); i++; } Map<String, List<String[]>> map = new HashMap<String, List<String[]>>(); map.put("csvFileFirstRow", csvFileFirstRowArrayList); map.put("csvFileContent", strArrayList); return map; }}3.写入CSV文件
package com.szaisino.common.opencsv;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;import au.com.bytecode.opencsv.CSVWriter;/** * * <b>所属模块:</b>发票处理系统.公用模块<br/> * <b>类名称:</b>WriteCSVFile<br/> * <b>类描述:</b> 写入CSV文件 <br/> * <b>版本:</b>V1.0<br/> * <b>创建人:</b><a href="mailto:han_huayi@163.com">牧羊仒</a><br/> * <b>创建时间:</b>2016年4月20日 下午5:14:30<br/> */public class WriteCSVFile {/** * * 向CSV写数据 * * @param writeFilePath 文件路径 * @param strArrayList 文件内容 * @return void * @throws IOException * @exception 异常描述 * @see */public static void writeCSVFile(String writeFilePath, List<String[]> strArrayList, String characters) throws IOException{//判断文件是否存在,如果存在,先删除File file = new File(writeFilePath);if (file.exists())file.delete(); CSVWriter writer = null; // try { if (",".equalsIgnoreCase(characters)){ //初始化CSVWriter writer = new CSVWriter(new FileWriter(file)); } else{ //初始化CSVWriter,带分隔符 writer = new CSVWriter(new FileWriter(file),characters.toCharArray()[0]); }// } catch (IOException e) { // e.printStackTrace(); // } writer.writeAll(strArrayList); // try {writer.close();//} catch (IOException e) {//e.printStackTrace();//}}/** * * 向CSV写数据 * * @param writeFilePath * @param strArrayList * @param strArrayList * @return void * @throws IOException * @exception 异常描述 * @see */public static void writeCSVFile(String writeFilePath, List<String[]> csvFileFirstRowList, List<String[]> contentArrayList, String characters) throws IOException{//处理反斜杠if (!writeFilePath.endsWith("\\") && !writeFilePath.endsWith("/")){ //如果不是以\\结尾,则加上\\writeFilePath = writeFilePath+"\\\\";}//文件名String fileName = writeFilePath+new SimpleDateFormat("yyyyMMdd").format(new Date())+".csv"; //yyyyMMddHHmm//判断文件是否存在,如果存在,先删除File file = new File(fileName);if (file.exists())file.delete(); CSVWriter writer = null; if (",".equalsIgnoreCase(characters)){ //初始化CSVWriter writer = new CSVWriter(new FileWriter(file)); } else{ //初始化CSVWriter,带分隔符 writer = new CSVWriter(new FileWriter(file),characters.toCharArray()[0]); } //csv表头数据+表体数据 csvFileFirstRowList.addAll(contentArrayList); writer.writeAll(csvFileFirstRowList); //关闭流 writer.close();}}导出的csv文件如下(默认是带双引号的):
"手机号码","姓名","订单号","发票代码","发票号","发票日期","发票金额""000000000","牧羊仒","0121342","030012111","13244","20170217","100"
CSVWriter 的构造函数有好几个,这里示例试用的是含有3个参数的构造,
第一个是指定Writer(不同情况下我们可能使用不同的writer),
第二个参数是分隔符通常是分号或者逗号
第三个参数即是告知CSVWriter不要使用任何的引号来引数据,默认是双引号“”
public static void writeCSVFile(String writeFilePath, List<String[]> csvFileFirstRowList, List<String[]> contentArrayList, String characters) throws IOException{//处理反斜杠if (!writeFilePath.endsWith("\\") && !writeFilePath.endsWith("/")){ //如果不是以\\结尾,则加上\\writeFilePath = writeFilePath+"\\\\";}//文件名String fileName = writeFilePath+new SimpleDateFormat("yyyyMMdd").format(new Date())+".csv"; //yyyyMMddHHmm//判断文件是否存在,如果存在,先删除File file = new File(fileName);if (file.exists())file.delete(); //初始化CSVWriter CSVWriter writer = new CSVWriter(new FileWriter(file), ',', CSVWriter.NO_QUOTE_CHARACTER); //csv表头数据+表体数据 csvFileFirstRowList.addAll(contentArrayList); writer.writeAll(csvFileFirstRowList); //关闭流 writer.close();}
0 0
- opencsv方式读取csv文件,详解,示例
- openCSV读写CSV文件
- Java opencsv 生成、读取、下载、删除CSV文件
- Java+Selenium3方法篇44-利用opencsv读取csv文件
- 使用OPENcsv处理csv文件
- 用opencsv文件读写CSV文件
- C# 读取EXCEL(CSV文件方式)
- 生成CSV文件 au.com.bytecode.opencsv.CSVWriter.CSVWriter
- 导出csv opencsv
- CSV类库:OpenCSV
- O_DIRECT方式读取文件示例
- PHP读取csv文件的内容详解
- Spring Batch示例: 读取CSV文件并写入MySQL数据库
- c# 读取csv文件的三种方式
- 读取.csv文件到底使用哪种方式效率更高?
- 如何读取csv文件
- CSV文件直接读取
- C#读取CSV文件
- 确保关键代码的运行
- Eclipse智能提示及快捷键
- win7输入网络密码来自动连接
- 在线LaTeX编辑器 - ShareLaTeX
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- opencsv方式读取csv文件,详解,示例
- 基于openwrt RT5350的uboot波特率修改
- [LeetCode] Sum of Two Integers(用位运算实现加法)
- 同步类CountDownLatch整理
- Android ViewAnimator及其子类
- java.util.Date和mysql日期之间转换
- invalidate和postInvalidate 的区别及使用
- hadoop fs -put上传失败
- redis菜鸟教程