如何将EOT设置为Spring批处理文件的行分隔符
我需要处理一个以EOT字符作为记录结尾但不是换行符的文件。我使用spring批处理进行批量处理。我无法将十六进制值为“\u0004”的EOT设置为处理的行尾字符 AP01000110319.99RD34/78 OPTIMA BAT 0110000000100****AU008114050003001000110 这些字符不可见。它基本上是EOT(传输结束字符) 我的代码看起来像这样如何将EOT设置为Spring批处理文件的行分隔符,spring,file,spring-batch,delimiter,Spring,File,Spring Batch,Delimiter,我需要处理一个以EOT字符作为记录结尾但不是换行符的文件。我使用spring批处理进行批量处理。我无法将十六进制值为“\u0004”的EOT设置为处理的行尾字符 AP01000110319.99RD34/78 OPTIMA BAT 0110000000100****AU008114050003001000110 这些字符不可见。它基本上是EOT(传输结束字符) 我的代码看起来像这样 public FlatFileItemReader<ProductDTO> productReader
public FlatFileItemReader<ProductDTO> productReader() throws Exception
{
FlatFileItemReader<ProductDTO> reader = new FlatFileItemReader<>();
reader.setResource(inputFileResource(null));
reader.setLineMapper(new DefaultLineMapper<ProductDTO>() {{
setLineTokenizer(new DelimitedLineTokenizer() {{
setNames("field1", "field2", "field3", "field4", "field5", "field6","field7", "field8", "field9", "field10" ,"field11" );
setDelimiter("\u001c");
}});
setFieldSetMapper(new ProductFileRowMapper());
}});
reader.setRecordSeparatorPolicy(new DefaultRecordSeparatorPolicy("\u0004")
{});
return reader;
public FlatFileItemReader productReader()引发异常
{
FlatFileItemReader=新的FlatFileItemReader();
setResource(inputFileResource(null));
reader.setLineMapper(新的DefaultLineMapper(){{
setLineTokenizer(新的DelimitedLineTokenizer(){{
设置名称(“字段1”、“字段2”、“字段3”、“字段4”、“字段5”、“字段6”、“字段7”、“字段8”、“字段9”、“字段10”、“字段11”);
设置分隔符(“\u001c”);
}});
setFieldSetMapper(新产品FileRowMapper());
}});
reader.setRecordSeparatorPolicy(新的DefaultRecordSeparatorPolicy(“\u0004”)
{});
返回读取器;
我尝试设置DefaultRecordSeparatorPolicy,但它不起作用。基本上,我正在研究如何将除换行符以外的任何字符设置为行分隔符。我的输入文件是一个单行大文件,每条记录用EOT分隔。欢迎提供帮助
我尝试设置DefaultRecordSeparatorPolicy,但它不起作用
您正在创建一个新的
DefaultRecordSeparatorPolicy(“\u0004”)
但是这里的参数是一个quoteCharacter
而不是一个分隔符。您需要使用后缀设置为\u0004
的subfixRecordSeparatorPolicy
,我尝试设置DefaultRecordSeparatorPolicy,但它不起作用。
:您正在创建一个新的DefaultRecordSeparatorPolicy(“\u0004”)
但是这里的参数是quoteCharacter
而不是分隔符。您是否尝试过使用后缀设置为\u0004
的subfixRecordSeparatorPolicy
?感谢您的建议。对于meGreat来说,听到它的帮助很有效。我添加了一个答案,请接受。