Java Camel:跳过固定长度文件中的多个头行将返回迭代器对象引用
作为前言,这正是我想要的。唯一的区别是我使用的是固定长度的文件 我的问题是,使用这种方法时,我似乎返回了一个迭代器对象,而不是删除了3行标题的文件 驼峰路由应该使用一个.txt文件,删除前3行,然后将结果发送到文件端点 我尝试过简单语言的不同变体,但都无济于事。我在书、文档或网上都找不到任何具体的案例 看下面我的骆驼路线Java Camel:跳过固定长度文件中的多个头行将返回迭代器对象引用,java,apache-camel,Java,Apache Camel,作为前言,这正是我想要的。唯一的区别是我使用的是固定长度的文件 我的问题是,使用这种方法时,我似乎返回了一个迭代器对象,而不是删除了3行标题的文件 驼峰路由应该使用一个.txt文件,删除前3行,然后将结果发送到文件端点 我尝试过简单语言的不同变体,但都无济于事。我在书、文档或网上都找不到任何具体的案例 看下面我的骆驼路线 from(inputFilePath).routeId("MyRoute") .streamCaching() .thr
from(inputFilePath).routeId("MyRoute")
.streamCaching()
.threads(threadPoolSize)
.log("${headers.CamelFileName}: Unmarshalling to Java POJO")
.log("${body} Body Before Transform")
.convertBodyTo(String.class)
.transform().simple("skip(3)")
.log("${body} Body After Transform")
.to(outputFilePath)
我希望返回一个.txt文件,删除前3行,不更改结构的其余部分
相反,我得到了对迭代器对象的引用-->
2019-06-19 14:55:30.497信息2868---[ad#2-Threads]MyRoute:org.apache.camel.util。SkipIterator@4d894ea5变换后的正文
任何帮助或建议都将不胜感激 简单函数skip(n)
旨在跳过n
列表中的n
项,但您的身体是String
。
您需要获得行()的列表才能使用它
要将此列表连接回字符串
,您可以使用eg调用
from(inputFilePath)
.transform(body().tokenize("\n"))
.transform(simple("${skip(3)}"))
.bean(StringUtils.class, "join(${body}, '\n')")
.to(outputFilePath);