Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Camel:跳过固定长度文件中的多个头行将返回迭代器对象引用_Java_Apache Camel - Fatal编程技术网

Java Camel:跳过固定长度文件中的多个头行将返回迭代器对象引用

Java Camel:跳过固定长度文件中的多个头行将返回迭代器对象引用,java,apache-camel,Java,Apache Camel,作为前言,这正是我想要的。唯一的区别是我使用的是固定长度的文件 我的问题是,使用这种方法时,我似乎返回了一个迭代器对象,而不是删除了3行标题的文件 驼峰路由应该使用一个.txt文件,删除前3行,然后将结果发送到文件端点 我尝试过简单语言的不同变体,但都无济于事。我在书、文档或网上都找不到任何具体的案例 看下面我的骆驼路线 from(inputFilePath).routeId("MyRoute") .streamCaching() .thr

作为前言,这正是我想要的。唯一的区别是我使用的是固定长度的文件

我的问题是,使用这种方法时,我似乎返回了一个迭代器对象,而不是删除了3行标题的文件

驼峰路由应该使用一个.txt文件,删除前3行,然后将结果发送到文件端点

我尝试过简单语言的不同变体,但都无济于事。我在书、文档或网上都找不到任何具体的案例

看下面我的骆驼路线

    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);