最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實現(xiàn)讀取CSV文件數(shù)據(jù)內(nèi)容(含逗號處理)

 更新時間:2025年07月04日 09:57:26   作者:Java皇帝  
這篇文章主要為大家詳細介紹了如何使用Java實現(xiàn)讀取CSV文件數(shù)據(jù)內(nèi)容,包含了逗號處理,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下

最近在公司寫項目時,有個讀取/修改csv格式文件數(shù)據(jù)的需求。

Java讀取csv文件時默認是按照 ,[英文逗號]分割的,如果數(shù)據(jù)內(nèi)容不包含逗號直接整行讀取即可,但內(nèi)容包含了,[英文逗號] 讀取的并不是我想要的內(nèi)容

 經(jīng)過研究找到hutool工具下CsvUtil 可以用,操作如下

依賴

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.22</version>
        </dependency>

代碼 demo

CsvReader reader = CsvUtil.getReader();
//讀取方式1
CsvData data = reader.read(FileUtil.file("test.csv"));
//讀取方式2
CsvData data = reader.read(new InputStreamReader(inputStream, CharsetUtil.UTF_8));
//讀取方式3 轉(zhuǎn)為對象數(shù)據(jù)
 List<Bean> data = reader.read(ResourceUtil.getUtf8Reader("bean.csv"), Bean.class)

csv整行數(shù)據(jù)包括表頭
List<CsvRow> rows = data.getRows();
for (CsvRow csvRow : rows) {

//修改index=修改數(shù)據(jù)下標 value改的內(nèi)容
csvRow.set(index,value);

//讀取 整行數(shù)據(jù)
List<String> columnList = csvRow.getRawList();

}

//單列數(shù)據(jù)
for (CsvRow csvRow : rows) {
csvRow.get(rowNum)
}

個人封裝方法

基于csv列返回對應(yīng)對象數(shù)據(jù)

    public static <T> List<T> getFromZipTable(Sring file, String fileName, Class<T> clazz)
            throws Exception {
        List<T> result = reader.read(ResourceUtil.getUtf8Reader(file), clazz);
        inputStream.close();
        return CollectionUtils.isNotEmpty(result) ? result : new ArrayList<>(0);
    }

 獲取指定文件列內(nèi)容

    /**
     * 獲取指定文件列內(nèi)容
     */
    public static List<String> getColumnValueFromZip(InputStream inputStream, String fileName, String columnName)
            throws Exception {
        List<String> columnValue = new ArrayList<>();
        try {
            //從文件中讀取CSV數(shù)據(jù)
            CsvReader reader = CsvUtil.getReader();
            CsvData data = reader.read(new InputStreamReader(inputStream, CharsetUtil.UTF_8));
            List<CsvRow> rows = data.getRows();
            //獲條件索引
            int rowNum = -1;
            CsvRow headers = rows.get(0);
            for (int i = 0; i < headers.size(); i++) {
                if (headers.get(i).toString().equals(columnName)) {
                    rowNum = i;
                    break;
                }
            }
            if (rowNum == -1) {
                return columnValue;
            }
            //遍歷行
            boolean headerFlag = true;
            for (CsvRow csvRow : rows) {
                //跳過表頭
                if (headerFlag) {
                    headerFlag = false;
                    continue;
                }
                columnValue.add(csvRow.get(rowNum));
            }
        } finally {
            inputStream.close();
        }
        return columnValue;
    }

到此這篇關(guān)于Java實現(xiàn)讀取CSV文件數(shù)據(jù)內(nèi)容(含逗號處理)的文章就介紹到這了,更多相關(guān)Java讀取CSV內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java實現(xiàn)學生教師管理系統(tǒng)

    java實現(xiàn)學生教師管理系統(tǒng)

    這篇文章主要為大家詳細介紹了java實現(xiàn)學生教師管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • 解決Swagger2返回map復(fù)雜結(jié)構(gòu)不能解析的問題

    解決Swagger2返回map復(fù)雜結(jié)構(gòu)不能解析的問題

    這篇文章主要介紹了解決Swagger2返回map復(fù)雜結(jié)構(gòu)不能解析的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • springboot結(jié)合mybatis-plus快速生成項目模板的方法

    springboot結(jié)合mybatis-plus快速生成項目模板的方法

    Mybatis-Plus是一個 Mybatis 的增強工具,在 Mybatis 的基礎(chǔ)上只做增強不做改變,為簡化開發(fā)、提高效率而生,接下來通過本文給大家分享springboot結(jié)合mybatis-plus快速生成項目模板的方法,感興趣的朋友一起看看吧
    2021-06-06
  • Java 中FastJson的基本使用

    Java 中FastJson的基本使用

    fastjson 是一個性能很好的 Java 語言實現(xiàn)的 JSON 解析器和生成器,來自阿里巴巴的工程師開發(fā)。下面通過本文給大家介紹Java 中FastJson的基本使用,需要的朋友參考下吧
    2017-11-11
  • 淺談mybatisPlus的Ipage分頁和map參數(shù)的問題

    淺談mybatisPlus的Ipage分頁和map參數(shù)的問題

    這篇文章主要介紹了mybatisPlus的Ipage分頁和map參數(shù)的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java加載ICC文件的方法和示例代碼

    Java加載ICC文件的方法和示例代碼

    ICC文件,通常用于顏色管理,定義了如何將一個顏色空間轉(zhuǎn)換為另一個顏色空間,在Java中,我們可能需要加載這些文件來進行顏色轉(zhuǎn)換或管理,本文將為您提供加載ICC文件的方法和示例代碼,需要的朋友參考下吧
    2023-08-08
  • SpringBoot?+?MyBatis-Plus構(gòu)建樹形結(jié)構(gòu)的幾種方式

    SpringBoot?+?MyBatis-Plus構(gòu)建樹形結(jié)構(gòu)的幾種方式

    在實際開發(fā)中,很多數(shù)據(jù)都是樹形結(jié)構(gòu),本文主要介紹了SpringBoot?+?MyBatis-Plus構(gòu)建樹形結(jié)構(gòu)的幾種方式,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-08-08
  • Spring?AOP簡介及統(tǒng)一處理

    Spring?AOP簡介及統(tǒng)一處理

    AOP面向切面編程,它是一種思想,它是對某一類事情的集中處理,本文給大家介紹Spring?AOP簡介及統(tǒng)一處理,感興趣的朋友跟隨小編一起看看吧
    2023-09-09
  • SpringBoot中內(nèi)置的49個常用工具類使用

    SpringBoot中內(nèi)置的49個常用工具類使用

    SpringBoot以其強大的自動配置和豐富的生態(tài)系統(tǒng)成為Java開發(fā)的首選框架,本文將介紹49個常用工具類,并通過簡潔的代碼示例展示它們的基本用法,希望對大家有一定的幫助
    2025-04-04
  • java導(dǎo)出大批量(百萬以上)數(shù)據(jù)的excel文件

    java導(dǎo)出大批量(百萬以上)數(shù)據(jù)的excel文件

    這篇文章主要為大家詳細 介紹了java導(dǎo)出大批量即百萬以上數(shù)據(jù)的excel文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04

最新評論

平舆县| 山西省| 青川县| 汤原县| 乐山市| 光山县| 西宁市| 万山特区| 理塘县| 简阳市| 静海县| 滨州市| 东乡族自治县| 林州市| 蒲江县| 天祝| 凤台县| 商水县| 滁州市| 池州市| 华安县| 洪洞县| 阳城县| 疏勒县| 宾川县| 祁阳县| 阜宁县| 吕梁市| 元谋县| 太康县| 道真| 湛江市| 奈曼旗| 贞丰县| 东台市| 渝中区| 临湘市| 泾川县| 香河县| 咸宁市| 合山市|