云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

全站加速_华为云手机登录_折扣

小七 141 0

简介:

在CPI(SAP Cloud Platform Integration)中,处理巨大的文本文件(csv或固定长度)是一项挑战。

通常在将它们转换为映射所需的xml之前,我们会通过groovy脚本读取它们,并处理数据。大多数情况下,这是通过将它们转换为字符串格式来完成的,这是非常占用内存的。

在这篇博文中,我将展示处理它们的其他方法,不仅是如何读取大文件,而且还将如何操作它们。

希望您会喜欢阅读。

主要部分:

在CPI(SAP云平台集成)中,有时我们会遇到我们需要处理输入csv或任何其他字符分隔的文本文件的场景。

通常,这些文件与我们以xml或json格式获取数据时相比是巨大的。

这个日期可以是",云服务器哪里好,"或制表符或"|"分隔的,或者是固定长度的,轻淘客旗舰版,当首先必须读取、排序时,会产生额外的复杂性,转换为xml(用于映射到某些目标结构),主机,然后才能进行最终处理。此外,有时我们必须对字段的数量进行各种检查,以验证文件中的一行是否值得处理,然后才能停止不必要的数据流。

例如:file->输入.csv

A,12234,NO,C,20190711,…

A,26579,NO,D,20190701,…….

…………….

…………….

…………….

例如,我们必须处理上述文件中第四个字段的标志设置为"D"或借方指示符的所有行。

因此,在上述示例中,在读取文件后,我们应该只保留第四个字段为"D"的行,因此以上第1行不应进一步处理。

下面我们将了解如何处理文本、csv文件。尤其是大文件,以及如何处理其中的每一行,而不转换为占用更多内存的字符串。

*。读取大文件:

我们通常通过将输入负载转换为字符串对象来启动脚本。

字符串内容=消息.getBody(String)//这一行主要用在脚本中

但如果是大的文件,上面的一行将整个数据转换为字符串并存储在内存中,这根本不是一个好的做法。通过创建新的字符串对象或用新的字符串对象替换这些对象来进一步进行任何新的更改都会占用更多的空间。这也有可能出现–OutOfMemoryError异常。

更好的方法是将它们作为流处理。有两个类可以处理流数据java.io.读卡器->将数据处理为字符或文本流

bjava.io.InputStream文件->以原始或二进制流的形式处理数据。

根据您对数据的控制级别或业务需求,您可以使用其中一种。大多数情况下,Reader类更易于使用,因为我们将数据作为文本/字符(UTF-16)而不是原始二进制数据(UTF-8)java.io.读卡器:

读取每个字段或字级别的数据,对于每一行:

*.在CPI Groovy中对数据进行替换不是一个好方法:

字符串方式–

将数据作为流读取时进行替换的更好方法:

*.将有效负载作为输入流,流对象:

结论:

这篇博文,是为了减轻开发者的痛苦,在构建iFlow时,我们确实遇到了许多情况,企业云服务器,在这些情况下,云服务器促销,我们需要以csv或其他分隔格式处理大型文本文件,这需要读取整个文件,有时还需要通过解析文本等方式处理每行的数据

在所有这些情况下,上述博客文章都有助于快速构建所需的groovy脚本,将在CPI(SAP云平台集成)iflows中使用,以处理这些类型的数据。

它通过提供有关如何实现结果的架构和可重用代码来加速这些开发。

我将期待您的输入和建议。