如何将EOT设置为Spring批处理文件的行分隔符

如何将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

我需要处理一个以EOT字符作为记录结尾但不是换行符的文件。我使用spring批处理进行批量处理。我无法将十六进制值为“\u0004”的EOT设置为处理的行尾字符

AP01000110319.99RD34/78 OPTIMA BAT 0110000000100****AU008114050003001000110

这些字符不可见。它基本上是EOT(传输结束字符)

我的代码看起来像这样

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来说,听到它的帮助很有效。我添加了一个答案,请接受。