java - 如何在 mule 中将具有数千条记录的管道分隔文件转换为 XML

标签 java xml file mule

我有一个文件入站端点,其中将输入管道分隔的文件。文件的第一行是 header ,其余是记录。平均有 40K 条记录,文件大小接近 7MB。我需要将此文件转换为 XML 结构(文件中的 header 与 XML 元素不同)。

将此文件转换为 XML 的好方法是什么?我编写了一个组件,它采用输入流,逐行读取文件,对其进行标记,创建并写入 XML 文件。但在这种情况下,我要长时间保持文件连接打开,并且我必须注意关闭文件流并移动文件进行备份。

想知道还有什么其他方法可以做到这一点?有没有人使用Data Mapper来实现类似目的?

最佳答案

DataMapper 的 Mule 文档指出,如果您在 DataMapper 配置中设置“streaming”属性,“DataMapper 可以仅使用大约 75 MB 的 RAM 来解析 500 MB 的 CSV 文件”。管道分隔符算作 CSV,因为您可以配置分隔符。您还可以将其设置为忽略标题行。我会选择 DataMapper,如果出现问题,会发布另一个问题,并且只有在失去所有希望时才恢复到自定义组件。

关于java - 如何在 mule 中将具有数千条记录的管道分隔文件转换为 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22487110/

相关文章:

java - NetBeans 找不到 Applet 类

java - 在Swing中,有没有办法从工具包中提取预定义的鼠标光标图像?

每个父节点的 PHP replaceChild

xml - 标签内的 Unix XML 解析

macos - Cocoa:如何创建 CFUrl/NSUrl 以从 ExtAudioFileOpenURL 的内存缓冲区中读取

无法将 int 打印到文件

java - 将 Java applet 项目导入 netbeans 将无法正常工作,即使手动设置,Netbeans 也拒绝识别甚至找不到主类

java - 为什么我刚刚实现的 H2 数据库会出现 "Database may be already in use: null"错误?

xml - 根据所使用的 XML 解析器出现 XML 验证问题.....我如何表示要普遍接受的约束

MySQL - 从 LOCAL INFILE 加载数据 - 如何提高性能