当前位置:首页 > 编程语言 > Java模式 > 正文内容

Java CSV CsvUtil

lcpsky1年前 (2023-03-22)Java模式219
<!-- hutool工具包  -->
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>${cn.hutool.version}</version>
</dependency>

package com.lcpsky.common.csv;

import cn.hutool.core.text.csv.CsvBaseReader;
import cn.hutool.core.text.csv.CsvReader;
import cn.hutool.core.text.csv.CsvRow;
import com.google.common.collect.Lists;
import com.lcpsky.fund.bo.Fund;
import org.apache.commons.lang3.time.DateUtils;

import java.text.ParseException;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;

/**
 * @author: Administrator
 * @date: 2023/03/16 9:32
 * @description:
 */
public class CsvUtil {
    private static final String YMD_PTN = "yyyyMMdd";
    private static String ROW_DATE = "日期";
    public static List<Fund> convet(CsvBaseReader csvBaseReader){
        List<Fund> res = Lists.newArrayList();
        Iterator<CsvRow> iterator = ((CsvReader) csvBaseReader).iterator();
        List<String> dateList = Lists.newArrayList();
        iterator.forEachRemaining(row->{
            List<String> rawList = row.getRawList();
            if (ROW_DATE.equals(rawList.get(0))){
                dateList.addAll(rawList.subList(1,rawList.size()));
            }else{
                String source = rawList.get(0);
                List<String> datas = rawList.subList(1,rawList.size());
                for (int i = 0,len = dateList.size(); i < len; i++) {
                    Double mount = Double.parseDouble(datas.get(i));
                    Fund fund = null;
                    try {
                        fund = Fund.builder().mount(mount).source(source).acquisitionTime(DateUtils.parseDate(dateList.get(i),YMD_PTN)).build();
                        res.add(fund);
                    } catch (ParseException e) {
                        e.printStackTrace();
                    }
                }
            }
        });
        res.sort(Comparator.comparing(Fund::getAcquisitionTime).thenComparing(Fund::getSource));
        return res;
    }
}


扫描二维码推送至手机访问。

版权声明:本文由软件技术记录发布,如需转载请注明出处。

本文链接:https://lcpsky.top/?id=42

分享给朋友:

“Java CSV CsvUtil” 的相关文章

Java ReflctUtil

//用来将map转为对象类型 package com.lcpsky.common.reflect; import org.apache.commons.lang3.time.DateUtils; import java.lang.reflect.Field...