gpt4 book ai didi

java - 如何从Jpos ISO8583打包文件中读取所有记录,该文件包含一行中的所有记录

转载 作者:行者123 更新时间:2023-12-02 04:43:31 24 4
gpt4 key购买 nike

我有 ISO 打包文件,其中所有记录都在一行中。文件内容如 MTI1XXXXXXMTI2XXXXMTI1XXXXX所以这里总共 3 行,单行。

ISOMsg isoMsg = new ISOMsg(); 
isoMsg.setPackager(packager);
isoMsg.unpack(filedata);`

isoMsg 只能解压第一条记录 MTI1XXXXXX

这里的MTI1、MTI2、MTI3是消息类型指示符(MTI),为4位数字。

如果我将文件中的这些记录(3行)分开并逐行读取,如下所示

MTI1XXXXXX
MTI2XXXX
MTI1XXXXX

它返回我所有的记录。有没有办法使用 JPOS ISO8583 打包器或通用打包器读取单行上的所有记录?

添加我的示例代码片段:

InputStream lis = null;
try {
GenericPackager packager;
packager = new GenericPackager("src/main/resources/BitMapConfig.xml");
lis = new FileInputStream("src/test/resources/isoTestFile");
ISOMsg isoMsg = new ISOMsg();
isoMsg.setPackager(packager);
isoMsg.unpack(lis);
ISOBitMap bitmap = (ISOBitMap) isoMsg.getComponent(-1);
System.out.println("bitmap.getValue::" + bitmap.getValue()); //returns only first records bitmap whoever file contains 3 MTI on single line
} catch (Exception e) {
e.printStackTrace();
}

我想阅读所有这些并将它们分开在不同的文件中。

最佳答案

你可以尝试这样的事情:

InputStream lis = null;
try {
GenericPackager packager;
packager = new GenericPackager("src/main/resources/BitMapConfig.xml");
lis = new FileInputStream("src/test/resources/isoTestFile");
while (true) {
ISOMsg isoMsg = new ISOMsg();
isoMsg.setPackager(packager);
isoMsg.unpack(lis);
ISOBitMap bitmap = (ISOBitMap) isoMsg.getComponent(-1);
System.out.println("bitmap.getValue::" + bitmap.getValue());
//or isoMsg.dump(System.out,"");
}
} catch (EOFException e) {
//assume we just ended the stream
} catch (Exception e) {
e.printStackTrace();
}


关于java - 如何从Jpos ISO8583打包文件中读取所有记录,该文件包含一行中的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56501278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com