当前位置: 首页 > 知识库问答 >
问题:

如何使用spring writer将EBCDIC字节[]写入文件?

姜烨伟
2023-03-14

我有一个格式化的ebcdic字节[],是我用自定义代码创建的。现在我想写入文件。我可以用Java来实现这一点。我试着用Spring writer检查一下我是否能做到这一点。我试着使用FlatFileItemWriter。但只是将一组对象写入文件。还有一个问题是,条目编写器还会在每个条目后面引入一行新词。然而,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); 

} 

共有1个答案

马弘益
2023-03-14

FlatFileItemWriter有一个钩子来改变行分隔符:setLine分隔符(java.lang.String line分隔符)。为什么不给它传递一个空的String,这样行就可以连接起来呢?

编辑:使用行聚合器将字节数组转换为EBCDIC字符串。

public class BytesAggregator<byte[]> implements LineAggregator {
    @Override
    public String aggregate(byte[] item) {
        return new String(bytes, "Cp1047");
    }
} 
 类似资料:
  • 问题内容: 我有一个返回字符串的函数。该字符串包含回车符和换行符(0x0D,0x0A)。但是,当我写入文件时,它仅包含换行符。有没有一种方法可以使输出包括回车和换行符。 问题答案: 如果要写入字节,则应以二进制模式打开文件。

  • 问题 你想在文本模式打开的文件中写入原始的字节数据。 解决方案 将字节数据直接写入文件的缓冲区即可,例如: >>> import sys >>> sys.stdout.write(b'Hello\n') Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: must be str,

  • 问题内容: 如何在Java中将字节数组写入文件? 问题答案: 可以使用IOUtils.write(字节[]数据,OutputStream的输出)从Apache的百科全书IO。

  • 我想编程一个16/32位的EEPROM。我正在用C程序编写这个文件,但是似乎只执行8位?我写了一个简单的例子,使用xxd(和hextump)查看结果,但文件似乎只有8位。我想知道是否由于hexdump的限制,我只能看到8位 有人知道我如何检查所有的位都被写入文件吗? 使用xxd我看到: 编辑:我试图确保有32位写入文件。xxd的结果是: 其中显示有16位用于,但其他16位在哪里?理想情况下,我希望

  • 问题内容: 我使用下面的方法来写到: 我想知道这是否是使用NIO的正确方法。我已经阅读了一个方法,该方法带有三个参数: ReadableByteChannel src 好仓 长计 在我的情况下,我只有,而没有and和,有什么方法可以使用此方法来创建文件? 此外,对于Image,还有什么更好的方法可以仅从和NIO 创建映像? 任何信息对我来说都是非常有用的。在SO中也有类似的问题,但是我找不到适合我

  • 我正在建立一个自定义的文件创建与Android应用程序。我试图将Bytebuffer的内容(它是我创建的自定义类中的字符串成员)写入字节类型的文件。但是,每当我这样做时,我得到的是字符串格式的文件内容。我尝试了几种替代方法,例如使用get方法、BufferedOutputStream类、ByteArrayOutputStream类、DataOutputStream类、Filechannel类等。以