FlatFileItemReader实现ItemReader接口,核心作用将Flat文件中的记录转换为Java对象。
一、FlatFileItemReader中关键属性
属性 | 类型 | 说明 |
bufferedReaderFactory | BufferedReaderFactory | 根据给定的resource创建BufferReader实例,默认使用DefaultBufferedReaderFactory创建文本类型的BufferReader实例。 |
comments | String[] | 定义注释行的前缀,当某行以这些字符串中的一个开头时候,此行记录将会被Spring Batch框架忽略。 |
encoding | String | 读取文件的编码类型,默认值为从环境变量file.encoding获取,如果没有设置则默认为UTF-8 |
lineMapper | LineMapper<T> | 将一行文件记录转换为Java对象 |
linesToSkip | int | 读取文件的时候,定义跳过文件的行数;跳过的行记录将会被传递给skippedLinesCallback,执行跳过行的回调操作 |
recordSeparatorPolicy | RecordSeparatorPolicy | 定义文件如何区分记录,可以按照单行、也可以按照多行区分记录 |
resource | Resource | 需要读取的资源文件 |
skippedLinesCallback | LineCallbackHandler | 定义文件中记录跳过时执行的回调操作,通常与linesToSkip一起使用 |
strict | boolean | 定义读取文件不存在时候的策略,如果为true则抛出异常;如果为false表示不抛出异常,默认值为true |
二、FlatFileItemReader中关键属性使用到的关键接口和类
关键类 | 说明 |
Resource | 定义读取的文件资源 |
RecordSeparatorPolicy | 从文件中确定一条记录的策略,记录可能是一行,可能是跨多行 |
LineMapper | 将一条记录转化为Java数据对象,通常由LineTokenizer和FieldSetMapper组合来实现该功能 |
LineTokenizer | 将一条记录分割为多个字段,在LineMapper的默认实现DefaultLineMapper中使用 |
FieldSetMapper | 将多个字段值转化为Java对象,在LIneMapper的默认实现DefaultLineMapper中使用 |
LineCallbackHandler | 处理文件中记录回调处理操作 |
待续