spring integration – 逐行读取远程文件

我正在尝试使用spring集成逐行读取远程文件。 使用此处的spring文档,我已经设置了我的项目来轮询文件,并在找到文件时通过sftp进行传输。 我被困在如何一次一行地读取文件内容。

这是我的入站通道适配器设置,目前可用于提取文件。

      

编辑:为了澄清,我想从远程文件一次检索一行,然后处理该行的内容,然后检索下一行。 类似于为本地文件创建java.io.inputstream并逐行读取它。

任何帮助深表感谢。 谢谢!

您可以在接收文件和之后使用payload的内容分隔到行列表。

UPDATE

我想从远程文件一次检索一行,然后处理该行的内容,然后检索下一行。 类似于为本地文件创建java.io.inputstream并逐行读取它。

好吧,不幸的是我们没有为此提供高级组件,但您可以尝试使用RemoteFileTemplate的function:

 RemoteFileTemplate template = new RemoteFileTemplate(this.ftpSessionFactory); template.setFileNameExpression(new SpelExpressionParser().parseExpression("payload")); template.setBeanFactory(mock(BeanFactory.class)); template.afterPropertiesSet(); final ByteArrayOutputStream baos1 = new ByteArrayOutputStream(); template.get(new GenericMessage("ftpSource/ftpSource1.txt"), new InputStreamCallback() { @Override public void doWithInputStream(InputStream stream) throws IOException { FileCopyUtils.copy(stream, baos1); } }); 

您可以将此代码用于某些POJO服务,并使用最后一个。