Spring 批量输出强制CRLF作为行分隔符

Spring batch output force CR-LF as line seperator

我试图强制我的 spring 批处理始终使用 CR-LF[EDIT] 作为行分隔符写入文件,而不管底层系统如何。

我尝试使用 FlatFileItemWriter 的 setLineSeperator

<bean id="myFileWriter" class="org.springframework.batch.item.file.FlatFileItemWriter">
        <property name="lineSeparator">
        <value>\r\n</value>
        </property>
</bean>

但它总是生成以“\r\n”为字符串的文件。我不确定如何避免这种情况。我查看了 FlatFileItemWriter 的源代码,它只是附加了行分隔符。他们还使用 System.getProperty("line.seperator") 获取默认值。

我确定我遗漏了一些非常简单的东西。

谢谢。

它确实适用于

<property name="lineSeparator" value="&#13;&#10;" />

要将 CR 插入 XML,您需要使用其字符实体 &#13;,对于 CRLF,您需要 &#13;&#10;

从这里得到它 Whosebug answer

有关更多背景知识和正确的写作(不是 CL-RF),请参阅 newline - Difference between \n and \r

如果您正在使用 Java 配置,以下可能是您要查找的内容:

myFileWriter.setLineSeparator("\r\n");

当使用 "&#13;&#10;" 解决方案编写 .txt 文件时,结果是单行文件,其中 "&#13;&#10;" 在文件中显示为纯文本。