当前位置: 首页 > article >正文

本地测试文件解析

@PostMapping("/test")
public void test() throws IOException {
    Path csvFile = Paths.get("D:\\test/27.csv");
    //虚拟机退出时删除临时文件
    csvFile.toFile().deleteOnExit();
    List<String> list = Files.readAllLines(csvFile, Charset.forName("GB2312"));
    //List<String> allLines,
    //                                                     String formattedDate, String fileId
    //billingService.buildBillingResult(list,"","2024-12-30","13234");

    InputStream resourceAsStream = this.getClass().getResourceAsStream("/keystore/a.csv");
    byte[] downloadAsBytes = IOUtils.readFully(resourceAsStream,
        Objects.requireNonNull(resourceAsStream).available());

}

    @GetMapping("/test")
    public void test() throws IOException {
        Path csvFile = Paths.get("D:\\test/a.txt");
        //虚拟机退出时删除临时文件
        //csvFile.toFile().deleteOnExit();
        //List<String> list = Files.readAllLines(csvFile, Charset.forName("GB2312"));
        
        baiduApService.buildBillingResult(csvFile,zhuti.xxx,LocalDate.now(),"1111");

}

public List<PayChannelBillingInfo> buildBillingResult(Path path, zhuti zhuti , LocalDate date,
                                                 String fileId) throws IOException {
    final List<String> allLines = Files.readAllLines(path);

    final Splitter splitter = Splitter.on("&&");
    final List<String> headers = splitter.splitToList(allLines.get(6));
    final List<LinkedHashMap<String, String>> list = allLines
            .subList(7, allLines.size() - 2)
            .stream()
            .filter(StringUtils::isNotBlank)
            .map(lineString -> {
                List<String> values = splitter.splitToList(lineString);
                if("danhao".equals(values.get(0))){
                    log.info("对账订单号size:{}",values.size()+":"+values.get(0)+":"+values.get(2));
                    for (int i=0 ;i<values.size();i++) {
                        log.info("对账订单号str:{}",values.get(i));
                    }
                }
                if("danhao".equals(values.get(0))){
                    log.info("对账订单号size:{}",values.size()+":"+values.get(0)+":"+values.get(2));
                    for (int i=0 ;i<values.size();i++) {
                        log.info("对账订单号str:{}",values.get(i));
                    }
                }
                return IntStream.range(0, headers.size()).boxed()
                        .collect(Collectors.toMap(headers::get, values::get, (a, b) -> b, Maps::newLinkedHashMap));
            }).collect(Collectors.toList());

http://www.kler.cn/a/465879.html

相关文章:

  • CoppeliaSim和Python进行无人机联合仿真
  • mmsegmentation中img_scale的作用
  • C#调用Lua
  • JavaVue-Get请求 数组参数(qs格式化前端数据)
  • ArcgisServer过了元旦忽然用不了了?许可过期
  • Appium 2.0:移动自动化测试的革新之旅
  • Qt 5.14.2 学习记录 —— 사 信号与槽机制(1)
  • 黑马JavaWeb开发跟学(十四).SpringBootWeb原理
  • 基于Swarm的大模型应用:一个天气助手
  • uniapp Stripe 支付
  • 解决ubuntu服务器SSH连接卡顿,连上后命令输入也是卡顿以及如何在Ubuntu上杀死不断重启的进程。
  • 【连续3届JPCS出版,EI稳定检索!】第四届能源利用与自动化国际学术会议(ICEUA 2025)
  • [cg] android studio 无法调试cpp问题
  • SQL中的REGEXP正则表达式使用指南
  • 抢先体验:人大金仓数据库管理系统KingbaseES V9 最新版本 CentOS 7.9 部署体验
  • Debian安装配置MariaDB
  • 安卓系统主板_迷你安卓主板定制开发_联发科MTK安卓主板方案
  • 期权懂|期权入门知识:平值期权的杠杆有多少倍数?
  • 基于微信小程序的自修室预约系统
  • Nginx 配置 SSL(HTTPS)详解
  • JVM常见排查问题的命令及可视化工具
  • 以一个实际例子来学习Linux驱动程序开发之“设备类”的相关知识【利用设备类实现对同一设备类下的多个LED灯实现点亮或关闭】
  • 服务器迁移中心——“工作组迁移”使用指南
  • 开源Material Design WPF UI 控件库简单上手
  • 【Python其他生成随机字符串的方法】
  • 《特征工程:自动化浪潮下的坚守与变革》