首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用FlatFileReader读取但只向ExecutionContext写入

如何使用FlatFileReader读取但只向ExecutionContext写入
EN

Stack Overflow用户
提问于 2013-07-01 23:51:15
回答 1查看 717关注 0票数 1

我想读取一个文本文件来构建一个地图,并将其放入ExecutionContext中以供以后参考。

我想开始使用分块处理来读取文件,然后处理它,但我不需要FlatFileItemWriter来写入文件。但是,bean初始化要求我在编写器上设置一个资源。

我说错了吗?chunk=process是错误的方法吗?创建一个微线程可能更明智,但我喜欢SpringBatch为我读取我的文件。使用微线程,我必须编写代码来打开和处理文本文件。对吗?

对于如何进行的建议,我们将非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2013-07-02 01:21:03

我最后做的(我是新手)是创建一个Tasklet,并让它实现StepExecutionListener接口。就像一个护身符。它逐行读取一个逗号分隔的文件,取出第二列。我为我的ExecutionContext映射键创建了一个‘枚举’。基本上,如下所示:

代码语言:javascript
复制
public class ProcessTabcPermitsTasklet implements Tasklet, StepExecutionListener {

    private Resource resource;
    private int linesToSkip;
    private Set<String> permits = new TreeSet<String>();

    public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext)  throws Exception {

        BufferedReader reader = new BufferedReader((new FileReader(resource.getFile())));
        String line = null;
        int lines = 0;

        while ((line = reader.readLine()) != null) {

            if (++lines <= linesToSkip)
                continue;

            String[] s = StringUtils.commaDelimitedListToStringArray(line);
            permits.add(s[TABC_COLUMNS.PERMIT.ordinal()]);

        }

        return RepeatStatus.FINISHED;
    }

    /**
     * @param file
     *            the file to set
     */
    public void setResource(Resource resource) {
        this.resource = resource;
    }

    /**
     * @param linesToSkip
     *            the linesToSkip to set
     */
    public void setLinesToSkip(int linesToSkip) {
        this.linesToSkip = linesToSkip;
    }


    public ExitStatus afterStep(StepExecution stepExecution) {
        stepExecution.getExecutionContext().put(EXECUTION_CONTEXT.TABC_PERMITS.toString(), permits);
        return ExitStatus.COMPLETED;
    }

} 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17408611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档