Как прочитать все записи из упакованного файла Jpos ISO8583, который содержит все записи в одной строке - PullRequest
0 голосов
/ 08 июня 2019

У меня упакованный файл 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();
    } 

Я хочу прочитать все это и разделить их в разных файлах.

1 Ответ

0 голосов
/ 08 июня 2019

Вы можете попробовать что-то вроде этого:

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();
    } 


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...