【发布时间】:2019-06-07 21:13:27
【问题描述】:
我有 ISO 打包文件包含其所有记录单行。 文件内容如 MTI1XXXXXXMTI2XXXXMTI1XXXXXX 所以这里总共有 3 行,单行。
ISOMsg isoMsg = new ISOMsg();
isoMsg.setPackager(packager);
isoMsg.unpack(filedata);`
isoMsg 只能解压第一条记录 MTI1XXXXXX
这里的 MTI1、MTI2、MTI3 是 4 位的消息类型指示符 (MTI)。
如果我将文件中的这些记录(3行)分开并逐行读取,如下所示
MTI1XXXXXX
MTI2XXXX
MTI1XXXXX
它将所有记录返回给我。 有没有办法使用 JPOS ISO8583 打包器或通用打包器读取单行上的所有记录?
添加我的示例代码 sn-p:
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();
}
我想阅读所有这些并将它们分开放在不同的文件中。
【问题讨论】:
-
您有什么顾虑?性能?
-
不,当我使用 unpack 方法时,它只返回第一条记录而不是所有 3 条记录。 ISOMsg isoMsg = 新 ISOMsg(); isoMsg.setPackager(打包器); isoMsg.unpack();
-
究竟什么是“ISO 打包文件”?
-
ISO打包文件是指它是一个记录有ISOMsg和打包器一起打包的文件,打包器可以是ISO8583或者一些GenericPackager
-
第一个示例数据中的
MIT1是错字吗?