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,    這幾種格式,親自測試一下吧

       

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