相关文章推荐
朝气蓬勃的火腿肠  ·  [22007] ...·  5 月前    · 
八块腹肌的柑橘  ·  重启hive服务命令 ...·  1 年前    · 
爱玩的小熊猫  ·  MySQL ...·  1 年前    · 

.csv文件是什么?

CSV文件最早用在简单的数据库里,由于其格式简单,并具备很强的开放性,所以起初被扫图家用作自己图集的标记。CSV文件是个纯文本文件,每一行表示一张图片的许多属性。你在收一套图集时,只要能找到它的CSV文件,用专用的软件校验后,你对该图集的状况就可以了如指掌。 每行相当于一条记录,是用“,”分割字段的纯文本数据库文件

在 java中解析 来吧上代码吧
依赖
maven

       <dependency>
            <groupId>de.siegmar</groupId>
            <artifactId>fastcsv</artifactId>
            <version>1.0.3</version>
        </dependency>

gradle

    implementation "de.siegmar:fastcsv:1.0.3"
 File file = new File("/*/*/*.csv");
        CsvReader csvReader = new CsvReader();
        csvReader.setContainsHeader(true);
        CsvContainer csv = csvReader.read(file, StandardCharsets.UTF_8);
         for (CsvRow row : csv.getRows()) {
                  //通过头获取对应属性
                 String str=row.getField("test");

也可以通过MultipartFile接受不过还要转成 File

 public void add(MultipartFile file) throws IOException {
        if (ObjectUtils.isEmpty(file)){
           return;
        CsvReader csvReader = new CsvReader();
        csvReader.setContainsHeader(true);
        CsvContainer csv = csvReader.read(multipartFile2File(file), StandardCharsets.UTF_8);
for (CsvRow row : csv.getRows()) {
                  //通过头获取对应属性
                 String str=row.getField("test");
     * multipartFile转File
    public static File multipartFile2File(MultipartFile multipartFile){
        File file = null;
        if (multipartFile != null){
            try {
                file=File.createTempFile("tmp", null);
                multipartFile.transferTo(file);
                System.gc();
                file.deleteOnExit();
            }catch (Exception e){
                e.printStackTrace();
                log.warn("multipartFile转File发生异常:"+e);
        return file;

也可以用流读取 不需要依赖

 public void add() throws IOException {
File file=new File("/*/*/*.csv");
        //获取文件名
        file.setReadable(true);
        file.setWritable(true);
        InputStreamReader isr = null;
        BufferedReader br = null;
        try {
            isr = new InputStreamReader(new FileInputStream(file), "UTF-8");
            br = new BufferedReader(isr);
        } catch (Exception e) {
            e.printStackTrace();
        String line = "";
        ArrayList<String> records = new ArrayList<>();
        try {
            while ((line = br.readLine()) != null) {
                System.out.println(line);
                records.add(line);
            System.out.println("csv表格读取行数:" + records.size());
        } catch (IOException e) {
            e.printStackTrace();
                                    模块介绍 ?  
fast-csv是一款开源软件包,主要用来处理csv格式的文本数据,就是一种有固定格式的文本文件。fast-csv是一个流式的推式解析器,即收到一段数据就解析一段数据,不需要收完全部的数据才开始解析。推式就是每一行,每一个字段都全部都解析出来,不论你最后用了还是不用。
如何使用?
在pom.xml中添加依赖信息:
 <dependency>
            <groupId>de.siegmar</groupId>
                                    java导出下载csv文件说明工具类代码Controller代码
今天看到需求里面有个需要将数据导成csv文件的格式,这里记录下自己的实现过程。直接上后端代码,这里用的springboot框架实现。
工具类代码
工具类代码下面最下面有一个main方法可直接执行导出功能,你可以用这个测试数据看看效果。
package com.etone.project.utils;
import org.apache.commons.beanutils.BeanUtils;
import org.slf4j.Logg
                                    1、大数据量情况下导出csv格式文件,一般使用多线程分批读取到内存中,这样可以避免OOM情况,同时也可以使用消息队列方式,这样也可以实现数据削峰读取,本文主要是记录核心的导出CSV功能,架构没有在此文中实现。2、csv导出核心代码。
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-csv</artifactId>
    <version>1.7</version>
</dependency>
<!-- 上传工具依赖 -->
<dependency>