CSVFileUtil 读取写入CSV文件简单工具类
Posted mask-xiexie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSVFileUtil 读取写入CSV文件简单工具类相关的知识,希望对你有一定的参考价值。
参考github大神源码 总结一下最简单的工具类记录一下
/** * @description CSV文件读取和输出 工具类.<br/> * @author michael * @date 2019/05/16 * @version Copyright (c) 2019, [email protected] All Rights Reserved. */ public class CSVFileUtil { private static final Logger LOGGER = LoggerFactory.getLogger(CSVFileUtil.class); public static final String ENCODE = "UTF-8"; /** * readCsv:根据路径读取CSV文件.<br/> * * @param csvFilePath * @return */ public static List<String[]> readCsv(String csvFilePath) { List<String[]> csvList = new ArrayList<String[]>(); try { CsvReader reader = new CsvReader(csvFilePath, ‘,‘, Charset.forName(ENCODE)); /** 跳过表头 如果需要表头的话,不要写这句 */ reader.readHeaders(); while (reader.readRecord()) { csvList.add(reader.getValues()); } reader.close(); } catch (FileNotFoundException e) { e.printStackTrace(); LOGGER.error("read csv file error. : {}", e.getLocalizedMessage()); } catch (IOException e) { e.printStackTrace(); LOGGER.error("read csv file error. : {}", e.getLocalizedMessage()); } return csvList; } /** * readCsv:根据数据流读取CSV文件.<br/> * * @param csvIs * @return */ public static List<String[]> readCsv(InputStream csvIs) { List<String[]> csvList = new ArrayList<String[]>(); try { CsvReader reader = new CsvReader(csvIs, Charset.forName(ENCODE)); /** 跳过表头 如果需要表头的话,不需要写这句 */ reader.readHeaders(); while (reader.readRecord()) { csvList.add(reader.getValues()); } reader.close(); } catch (FileNotFoundException e) { e.printStackTrace(); LOGGER.error("read csv inputStream error. : {}", e.getLocalizedMessage()); } catch (IOException e) { e.printStackTrace(); LOGGER.error("read csv inputStream error. : {}", e.getLocalizedMessage()); } return csvList; } /** * writeCsv:把内容写入到文件中.<br/> * * @param csvFilePath * @param contents */ public static void writeCsv(String csvFilePath, List<String[]> contents) { try { CsvWriter wr = new CsvWriter(csvFilePath, ‘,‘, Charset.forName(ENCODE)); for (int i = 0; i < contents.size(); i++) { wr.writeRecord(contents.get(i)); } wr.close(); } catch (IOException e) { e.printStackTrace(); LOGGER.error("write csv file error. : {}", e.getLocalizedMessage()); } } /** * * writeCsv:把内容写到输出流.<br/> * * @param ou * @param list */ public static void writeCsv(OutputStream ou, List<String[]> list) { CsvWriter cw = null; try { cw = new CsvWriter(ou, ‘,‘, Charset.forName(ENCODE)); for (String[] s : list) { cw.writeRecord(s); } // 在文件中增加BOM,该处的byte[] 可以针对不同编码进行修改 ou.write(new byte[] {(byte)0xEF, (byte)0xBB, (byte)0xBF}); cw.flush(); } catch (IOException e) { e.printStackTrace(); LOGGER.error("write csv outputStream error. : {}", e.getLocalizedMessage()); } finally { if (null != cw) { cw.close(); } } } }
以上是关于CSVFileUtil 读取写入CSV文件简单工具类的主要内容,如果未能解决你的问题,请参考以下文章