rdf-file:读和写

<dependency><groupId>com.alipay.rdf.file</groupId><artifactId>rdf-file-core</artifactId><version>2.2.10</version>
</dependency>

一:读

一:写

写文件之正常写

协议布局模板

使用内置的布局文件: rdf-file-core-2.2.10.jar!/META-INF/rdf-file/protocol/fund.xml

数据定义模板

{"head":["identity|信息标识|[8,0]|default:OFDCFDAT","version|协议版本号|[4,0]|default:20","msgCreator|信息创建人|[9,0]|default:H0","msgRecipient|信息接收人|[9,0]","sendDate|传送发生日期|[8,0]|Date:yyyyMMdd","summaryTableNo|汇总表号|[3,0]","fileTypeCode|文件类型代码 |[2,0]","sender|发送人|[8,0]|default:H0","recipient|接收人|[8,0]"],"body":["TransactionCfmDate|对帐日期|[8,0]|Date:yyyyMMdd","FundCode|基金代码|[8,0]","AvailableVol|基金可用份数|Integer|[6,2]"],"tail":["fileEnd|数据文件尾部字符|default:OFDCFEND|[8,0]"],"protocol":"FUND"
}

示例程序

String filePath = new File("/Users/mengday/Temp", "demofund.txt").getAbsolutePath();
FileConfig fileConfig = new FileConfig(filePath, "templates/demofund.json", new StorageConfig("nas"));
FileWriter fileWriter = FileFactory.createWriter(fileConfig);
try {//构建文件头Map<String, Object> head = new HashMap<>();head.put("msgRecipient", "xxx");head.put("sendDate", "20231122");head.put("summaryTableNo", "aa");head.put("fileTypeCode", "bb");head.put("recipient", "ll");head.put("totalCount", 1);fileWriter.writeHead(head);// 文件数据内容Map<String, Object> row = new HashMap<>();row.put("TransactionCfmDate", "20231122");row.put("FundCode", "中国1");row.put("AvailableVol", 42.11);fileWriter.writeRow(row);// 文件尾,没有数据,是取了数据定义模板中默认值fileWriter.writeTail(new HashMap<String, Object>());
} catch (Exception e) {e.printStackTrace();
} finally {fileWriter.close();
}

生成文件

OFDCFDAT
20  
H0       
xxx      
20231122
aa 
bb
H0      
ll      
003
TransactionCfmDate
FundCode
AvailableVol
00000001
20231122中国1 004211
OFDCFEND

写文件之汇总写

协议布局模板

rdf-file-core-2.2.10.jar!/META-INF/rdf-file/protocol/sp.xml

数据定义模板

tail:定义字段,summaryColumnPairs:定义对什么字段进行汇总,汇总的值赋给tail的什么字段上。"totalAmount|amount"表示对totalAmount=sum(amount),totalCount是系统预定义好的总条数。

{"head": ["fileStart|数据文件头部字符|default:汇总文件测试"],"body": ["seq|流水号","instSeq|基金公司订单号|Required","gmtApply|订单申请时间|Date:yyyy-MM-dd HH:mm:ss","date|普通日期|Date:yyyyMMdd","dateTime|普通日期时间|Date:yyyyMMdd HH:mm:ss","applyNumber|普通数字|Long","amount|金额|BigDecimal","age|年龄|Integer","longN|长整型|Long","bol|布尔值|Boolean","memo|备注"],"tail": ["totalCount|总笔数|Required|Integer","totalAmount|总金额|BigDecimal|Required"],"protocol": "SP","lineBreak": "\r\n","summaryColumnPairs": ["totalAmount|amount"]
}

示例程序

String filePath = new File("/Users/mengday/Temp", "demosp.txt").getAbsolutePath();
FileConfig fileConfig = new FileConfig(filePath, "templates/demosp.json", new StorageConfig("nas"));
// 开启汇总写
fileConfig.setSummaryEnable(true);
FileWriter fileWriter = FileFactory.createWriter(fileConfig);
try {Date testDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2017-01-03 12:22:33");// 头使用数据定义模板的常量Map<String, Object> head = new HashMap<String, Object>();fileWriter.writeHead(head);// 写入两条数据Map<String, Object> body = new HashMap<String, Object>();body.put("seq", "seq12345");body.put("instSeq", "303");body.put("gmtApply", testDate);body.put("date", testDate);body.put("dateTime", testDate);body.put("applyNumber", 12);body.put("amount", new BigDecimal("1.22"));body.put("age", new Integer(33));body.put("longN", new Long(33));body.put("bol", true);body.put("memo", "memo1");fileWriter.writeRow(body);testDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2016-02-03 12:22:33");body.put("seq", "seq234567");body.put("instSeq", "505");body.put("gmtApply", testDate);body.put("date", testDate);body.put("dateTime", testDate);body.put("applyNumber", 12);body.put("amount", new BigDecimal("1.09"));body.put("age", 66);body.put("longN", 125);body.put("bol", false);body.put("memo", "memo2");fileWriter.writeRow(body);// 根据汇总信息写入尾部fileWriter.writeTail(fileWriter.getSummary().summaryTailToMap());
} catch (Exception e) {e.printStackTrace();
} finally {fileWriter.close();
}

生成文件

汇总文件测试
seq12345|303|2017-01-03 12:22:33|20170103|20170103 12:22:33|12|1.22|33|33|true|memo1
seq234567|505|2016-02-03 12:22:33|20160203|20160203 12:22:33|12|1.09|66|125|false|memo2
2|2.31

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/172200.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二分 模板

好久没更新博客了&#xff0c;之前一直在准备比赛&#xff0c;忙着学算法和写题&#xff0c;今天写了一道二分答案的题&#xff0c;发现之前那种二分写法有一丢丢的问题&#xff0c;导致有道题只能过97%的点。 emmm,还是把最经典的二分的板子写在这记录下&#xff08;这里参考…

python每日一题——8无重复字符的最长子串

题目 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”&#xff0c;所以其长度为 3。 示例 2: 输入: s “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串…

精进Beautiful Soup 小技巧(二)---处理多种页面结构

前言: 为了处理多种不同结构的页面&#xff0c;一个灵活的代码基础是至关重要的。一些针对性的技巧和方法&#xff0c;让你能够优雅地解决遇到的页面结构多元化的问题。 使用条件语句适配不同布局 当面对页面布局差异时&#xff0c;选择合适的条件语句至关重要。 认识布局类型…

正则表达式例题-PTA

PTA-7-55 判断指定字符串是否合法-CSDN博客 7-54 StringBuffer-拼接字符串 题目&#xff1a; 输入3个整数n、begin、end。 将从0到n-1的数字拼接为字符串str。如&#xff0c;n12&#xff0c;则拼接出来的字符串为&#xff1a;01234567891011 最后截取字符串str从begin到end(包…

【2023 年终盘点】今年用的最多的 10 款浏览器插件

分享顺哥今年用的最多的 10 款浏览器插件。 排名不分先后,涉及各个方面的应用。 大家有好用的插件也欢迎在评论区留言分享! 视频 YouTube:https://youtu.be/ZpTydUSBwCA 顺哥博客 浏览器扩展篇 注意: 1、以下介绍的均为在 Google Chrome 浏览器适用的小插件,部分插件…

2018年11月8日 Go生态洞察:参与2018年Go用户调查

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

一个通用的分页实体对象的思考

背景 用得非常多的一个分页实体对象 说明 只是一种抽象的思路, 可能不一定能够直接使用, 慎用. 只是一种抽象的思路, 可能不一定能够直接使用, 慎用. 只是一种抽象的思路, 可能不一定能够直接使用, 慎用. 分页实体 Data public class PageEntity<T> {/*** 分页后的结…

文件解析工具

前言 对Excel & CSV 文件解析 package com.wind.bird.Utils;import com.opencsv.CSVReader; import com.opencsv.CSVReaderBuilder; import org.apache.commons.validator.Var; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HS…

基于springboot学籍管理系统

一、设计目的 1. 复习、巩固Java语言的基础知识&#xff0c;进一步加深对Java语言的理解和掌握&#xff1b; 2. 课程设计为学生提供了一个既动手又动脑&#xff0c;独立实践的机会&#xff0c;将课本上的理论知识和实际有机的结合起来&#xff0c;锻炼学生的分析解决实际问题…

2016年五一杯数学建模B题能源总量控制下的城市工业企业协调发展问题解题全过程文档及程序

2016年五一杯数学建模 B题 能源总量控制下的城市工业企业协调发展问题 原题再现 能源是国民经济的重要物质基础,是工业企业发展的动力&#xff0c;但是过度的能源消耗&#xff0c;会破坏资源和环境&#xff0c;不利于经济的可持续发展。目前我国正处于经济转型的关键时期&…

关于 raw 图像的理解

1、问题背景 在图像调试过程&#xff0c;当发现一个问题时&#xff0c;很多时候都要通过 dump raw图像来分析&#xff0c;如果raw图像上有&#xff0c;那就排除了是 ISP的处理导致。 下一步就是排查 sensor 或者镜头&#xff0c;这样可以有效的帮我们定位问题所在。 但遇到过…

IDEA出现cannot download sources解决方案

IDEA出现cannot download sources解决方案 问题描述 当我想看第三方库的源码的注释时需要下载源码。 点击Dodnload Sources后可能会出现cannot download sources的问题。 解决方案 这时我们只需在根目录下打开Terminal后执行下面一行代码 mvn dependency:resolve -Dclassi…

王者荣耀Java

代码 package com.sxt;import javax.swing.*; import java.awt.*;public class Background extends GameObject {public Background(GameFrame gameFrame) {super(gameFrame);// TODO Auto-generated constructor stub}Image bg Toolkit.getDefaultToolkit().getImage("…

notion 3.0.0 版本最新桌面端汉化教程,支持MAC和WIN版本

notion客户端汉化&#xff08;目前版本3.0.0&#xff09; 最近notion桌面端更新了3.0.0版本后会导致老版本汉化失效&#xff0c;本项目实现了最新版Notion桌面端的汉化。 文件下载地址&#xff1a;汉化文件下载地址 项目说明 本项目针对新的客户端做了汉化文化&#xff0c;依…

超实用!Spring Boot 常用注解详解与应用场景

目录 一、Web MVC 开发时&#xff0c;对于三层的类注解 1.1 Controller 1.2 Service 1.3 Repository 1.4 Component 二、依赖注入的注解 2.1 Autowired 2.2 Resource 2.3 Resource 与 Autowired 的区别 2.3.1 实例讲解 2.4 Value 2.5 Data 三、Web 常用的注解 3.1…

【Linux】Linux 系统 grep 命令超详细讲解

文章目录 grep补充说明选项规则表达式grep命令常见用法 grep grep 命令是一项非常有用的工具。grep&#xff08;全称&#xff1a;Global Regular Expression Print&#xff09;命令用于根据给定的正则表达式搜索文本&#xff0c;并将匹配的行打印出来。 补充说明 grep &…

可以在Playgrounds或Xcode Command Line Tool开始学习Swift

一、用Playgrounds 1. App Store搜索并安装Swift Playgrounds 2. 打开Playgrounds&#xff0c;点击 文件-新建图书。然后就可以编程了&#xff0c;如下&#xff1a; 二、用Xcode 1. 安装Xcode 2. 打开Xcode&#xff0c;选择Creat New Project 3. 选择macOS 4. 选择Comman…

【面经八股】搜广推方向:常见面试题(三)

【面经&八股】搜广推方向:常见面试题(三) 文章目录 【面经&八股】搜广推方向:常见面试题(三)1. 如何解决数据不平衡2. 假设检验的两类错误3. 为什么快排比堆排快4. RMSE、MSE、MAE5. 双塔模型的应用6. XGBoost如果损失函数没有二阶导,该怎么办7. AUC是如何实现的…

虚拟文件系统之争:VirtioFS、gRPC FUSE、osxfs (Legacy)大比拼

&#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 [TOC](虚拟文件系统之争&#xff1a;VirtioFS、gRPC FUSE、osxfs (Legacy)大比拼) 前言 在计算机科学的世界中&#xff0c;文件系统一直是一个备受关注的话题。随着技术的发…

3.前端--HTML标签-文本图像链接【2023.11.25】

1.HTML常用标签(文本图像链接&#xff09; 文本标签 标题 <h1> - <h6> 段落<p> 我是一个段落标签 </p> 换行 <br /> <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta ht…