java - 有没有一种聪明的方法来使用camel和smooks编写固定长度的平面文件

标签 java spring apache-camel smooks fixed-length-record

有没有框架/库可以帮助用java编写固定长度的平面文件?

我想将 bean/实体的集合写入平面文件,而不必担心转换、填充、对齐、填充符等

例如,我想解析一个 bean,如下所示:

public class Entity{
    String name = "name"; // length = 10; align left; fill with spaces
    Integer id = 123; // length = 5; align left; fill with spaces
    Integer serial = 321 // length = 5; align to right; fill with '0'
    Date register = new Date();// length = 8; convert to yyyyMMdd
}

进入平面文件

Jaya       123 0032120110505
Prathiksha5000 0122120110504
Prabha       1 0000120101231
...

Smooks Fixed length使用这个我可以将文件读取为 POJO、列表或 map 。

问题是我无法找到任何将 POJO 写入 FixLenthFile 的进程。

还请建议是否有其他方法可以使用camel、spring项目处理FixedLengthFlatFIle。

目前在我们的项目中,我们使用 smooks、camel、spring 进行 EDI 到 POJO 以及 POJO 到 EDI。现在我们必须添加固定长度扁平文件处理功能。

最佳答案

我找到了答案。

WRT link

bindy 或 beanio 可以处理平面文件

Camel Bindy

Camel Beanio

Smooks 不适用于 Camel 2.10 及以上版本 (AFAIR)。有票 向 smooks 团队报告解决这个问题,但他们还没有这样做, 已经很长时间没有发布新版本的 Smooks 了。我会 尽量避免使用 Smooks,直到项目恢复生机(如果 做)。

关于java - 有没有一种聪明的方法来使用camel和smooks编写固定长度的平面文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19994231/

相关文章:

java - 使用简单的 Java 客户端代码查询 Treasure Data DB

java - 如何使用 Java 检测同步冲突

java - 使用默认程序在 Java 中打开文件时出现问题

java - Spring Transaction 尝试在选择查询后触发更新

java - 哪种设计模式可以帮助我实现连接池

mysql - 部署后 spring : Error creating bean , 管道损坏

java - Apache Camel : consume a rest service with jetty

java - 如何查找某个数组元素左侧有多少个元素大于该元素?

java - 独立运行 Camel 并让它继续运行

spring-boot - Apache Camel Spring Boot - 处理路由后应用程序的正常关闭