Java统计xml文件行数 但是当处理到xml文件时,我发现结果出现了问题,本应有6000多行的文件,统计出来只有42行,和正确结果相比误差大的离谱。使用记事本直接打开xml发现,这个xml文件并没有被格式化,而常规统计文件行数的方法是通过换行符来计算的,所以结果会出现误差,那么想要统计到正确的文件行数,就需要先对文件内容进行格式化。
Java解压缩rar文件 之前工作中遇到一个需求:rar 文件的压缩与解压缩。但是因为需求变动,还没来得及写,最近得空调研一下,发现 rar 比 zip 处理麻烦很多,这里小小记录一下。rar是个专有格式,rar许可证不允许软件开发工具如JDK集成它,如果要在Java中解压rar文件,只能利用第三方工具依赖,如 junrar。但是经过调研,发现压缩文件为 rar 还是很困难,没找到便捷可用的方法,这里仅记录 rar 文件解压的坑。
Java-diff-utils对比xml文件差异 工作中遇到了一个需求,需要对比两个xml文件,并记录差异位置及差异内容,以实现类似于git diff的效果。经过调研,发现了现成的轮子:java-diff-utils,它是基于Myers Diff 差分算法来实现的,这里就不记录算法的细节了,仅记录用例,方便以后抄作业。
ArangoDB 排除空值排序 在开发过程中,遇到了这样一个场景:collection 中存在某一个字段,这里假设为 age,某些数据的 age 值为 null,进行升序排序时,值为 null 的数据会排在最前面(在许多编程语言和数据库中,null被视为一个特殊的值,它表示缺失或未知的数据。在排序时,null通常被认为是最小的值,因此会被排在前面。但实际上我们并不关心值为 null 的数据,理想情况下应该在值为非空的数据排序完以后再将值为 null 的数据加到后面,接下来记录两种实现方法,方便以后开发抄作业。
Springboot 实现定时任务 在实际开发过程中,经常遇到需要用到定时任务的场景,一种是在固定的时间点执行某个任务,比如每天0点执行任务;另一种是延迟执行任务,比如在某方法运行后过20分钟以后执行任务,可以用在临时数据的删除等场景。这里简单介绍两种场景下的定时任务实现方法。
springboot 整合nacos配置中心 在开发中,我们可以用 nacos 作为配置中心,将项目中的配置做统一管理,这里就 springboot 整合 nacos 做一个入门级案例(Nacos 安装部署过程在此省略,网上有很多详细示例)
JAVA 去除重复对象方法 Java 中的 Set 集合中不能储存重复元素,故经常用来进行去重操作,但是在实际操作中,我们发现 Set 集合并不能判断对象是否重复,故无法对对象直接进行去重;不过我们可以通过将对象转换成 String 存入 Set 中进行去重操作后再取出转回对象,以此达到去重的目的。一. 引入依赖 <dependency> <groupId>com.alibaba</groupId> <artifa...
SpringBoot + MongoDB 大容量数据多线程分批处理(示例:抽取字段构建新表) 在实际工作中,我遇到了需要对千万级别数据量的库表进行抽取字段构建新表的需求,于是在此进行总结:一. 未使用多线程1. 新建查询类 ExtractInfopackage com.example.demo.bean;import java.util.List;public class ExtractInfo { private String tableName; private List<String> fields; public String
JAVA + MongoDB:将 ObjectId 对象转换为 String 对象 1. ObjectId 介绍ObjectId具有一个12字节的BSON类型的结构:4字节:UNIX时间戳3字节:表示运行MongoDB的机器2字节:表示生成此_id的进程3字节:由一个随机数开始的计数器生成的值MongoDB使用ObjectID作为_id字段的缺省值,为创建各文档生成在各文档。ObjectId的复杂组合,使所有的_id字段都是唯一的2. ObjectId 转化在之前的示例中,我们使用默认...