java 读写csv文件工具类

本是古典 何须时尚 2023-07-01 08:52 155阅读 0赞

依赖的jar包

  1. <dependency>
  2. <groupId>net.sourceforge.javacsv</groupId>
  3. <artifactId>javacsv</artifactId>
  4. <version>2.0</version>
  5. </dependency>

代码块

  1. package com.example.demo.test;
  2. import com.csvreader.CsvReader;
  3. import com.csvreader.CsvWriter;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.InputStream;
  7. import java.nio.charset.Charset;
  8. import java.util.ArrayList;
  9. import java.util.List;
  10. /**
  11. * @description: 读写csv文件工具类
  12. *
  13. * @create: 2020/01/20 17:36
  14. **/
  15. public class CsvUtil {
  16. public static void main(String[] args) throws Exception{
  17. File file = new File("E:\\temp\\1.csv");
  18. InputStream inputStream = new FileInputStream(file);
  19. List<String[]> list = read(inputStream,"GB2312");
  20. write(list,"E:\\temp\\2.csv");
  21. }
  22. /**
  23. * 读取csv文件内容
  24. * @param inputStream
  25. * @param code csv文件的编码,如utf8,,gbk
  26. *
  27. * @return 返回csv文件中的数据
  28. * @throws Exception
  29. */
  30. public static List<String[]> read(InputStream inputStream, String code) throws Exception{
  31. //1. 存储csv文件中的内容
  32. List<String[]> csvList = new ArrayList<String[]>();
  33. //2. 创建CsvReader
  34. CsvReader reader = new CsvReader(inputStream, ',', Charset.forName(code));
  35. //3. 跳过表头,如果需要表头的话,不要写这句
  36. reader.readHeaders();
  37. //4.逐行读入除表头的数据
  38. while(reader.readRecord()){
  39. csvList.add(reader.getValues());
  40. }
  41. //5. 释放资源
  42. reader.close();
  43. return csvList;
  44. }
  45. /**
  46. * 数据写入csv文件
  47. * @param list UTF-8编码写入csv文件的内容
  48. * @param filePath 写入的csv文件的指定路劲
  49. *
  50. * @throws Exception
  51. */
  52. public static void write(List<String[]> list, String filePath) throws Exception{
  53. CsvWriter wr = new CsvWriter(filePath, ',', Charset.forName("UTF-8"));
  54. for (int i = 0; i < list.size(); i++) {
  55. wr.writeRecord(list.get(i));
  56. }
  57. wr.close();
  58. }
  59. }

运行结果:
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,155人围观)

还没有评论,来说两句吧...

相关阅读

    相关 openCSVCSV文件

            openCSV是一款简单的用于解析CSV文件的java类库,它封装了CSV格式文件的读写操作,可将文件与java对象进行自动映射,自定义分隔符,使用转义符等。