JAVA读取CSV格式文件

自己写的,亲自测试过的,可以使用!

1.我一开始用Workbook工具读取CSV报错,错误的意思是格式不正确。

2.之后读取csv文件采用CsvReader这个工具,里面的类可以满足一些日常的读取。

        <dependency>
            <groupId>net.sourceforge.javacsv</groupId>
            <artifactId>javacsv</artifactId>
            <version>2.0</version>
        </dependency>
 /**
     * 文件全路径+文件名字
     * @param filePath
     * @return
     * @throws IOException
     */
    public static List<String[]> readFile(String filePath) throws IOException {
        char separator = ',';
        //1.创建一个List存放文件内容
        List<String[]> csvFileList = new ArrayList<String[]>();
        //2.声明一个CsvReader
        CsvReader reader = null;
        //3.newCsvReader 传入文件,设置编码gbk或者utf-8
        //csv行分割符号
        reader = new CsvReader(filePath,separator, Charset.forName("gbk"));
        //4.跳过表头,不读第一行内容
        reader.readHeaders();
        //5.读取csv文档内容,一共有多少列
        String [] headArray = reader.getHeaders();
        System.out.println("文档列长:"+headArray.length);
        //6.开始读取文件,while 一行一行读取
        while (reader.readRecord()){
            //6.1 读取一行内容,打印出来,你发现都是按照","分割的
            System.out.println(reader.getRawRecord());
            //6.2 读取第一列的内容
            System.out.println(reader.get(0));
            //6.3 把一行数据 按照","分割,之后存到String数组中
            csvFileList.add(reader.getValues());
        }
        reader.close();
        //7.打印list
        csvFileList.forEach(arr->{
            System.out.println(Arrays.asList(arr));
        });
        return csvFileList;
    }

注意:csv整个文件中,某一行的某一列有数据,则整个csv文件的这一列都算有内容。没填值的话,给你空开。

例如:1,2,,4      或者         1,2,3,    这几种格式,亲自测试一下吧

       

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章