我有一个格式化的ebcdic byte [],我使用自定义代码创建。现在我想写入文件。我可以使用Java来做到这一点。我试图检查我是否可以使用Spring编写器执行此操作。 我尝试使用FlatFileItemWriter。但只是写了一组文件对象。另外问题是Item编写器还在每个项目后面引入了一个新行。然而,Ebcdic是整个文件的单个字节流。 ItemWriter ebcdicByteWriter;
@Override
public void write(List<? extends AccountInvoice> items) throws Exception {
ArrayList<byte[]> finalList= new ArrayList<byte[]>();
for (AccountInvoice item : items) {
finalList.add(item.getEbcdicBytes());
}
ebcdicByteWriter.write(finalList);
}
答案 0 :(得分:1)
FlatFileItemWriter
有一个钩子来更改行分隔符:setLineSeparator(java.lang.String lineSeparator)
。为什么不直接传递一个空字符串,以便连接线?
编辑:使用行聚合器将您的字节数组转换为EBCDIC字符串。
public class BytesAggregator<byte[]> implements LineAggregator {
@Override
public String aggregate(byte[] item) {
return new String(bytes, "Cp1047");
}
}