RxJava Невозможно получить значение на карте - PullRequest
0 голосов
/ 17 октября 2018

Я сталкиваюсь с проблемой при чтении списка наблюдаемых с ftp-сервера. Вот мой код:

public RxJavaProcessor<byte[], String> processor() {
        /*
         * return inputStream -> inputStream.map(data -> { logger.info("Got data = " +
         * data); return data; }).buffer(10, 10, TimeUnit.SECONDS).map(data ->
         * processData(data));
         */

        return inputStream -> inputStream.map(data -> {
            logger.info("Got data = " + data);
            return data;
        }).buffer(10, 10, TimeUnit.SECONDS).collect(ByteArrayOutputStream::new, (bout, bytes) -> {
            bytes.forEach(byteItem -> {
                bout.write(byteItem, 0, byteItem.length);
            });
        }).map(bout -> {
            byte[] byteArray = bout.toByteArray();
            try {
                logger.info("byte array to string: " + new String(byteArray, "UTF-8"));
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return byteArray;
        }).map(data -> processData(data));
    }

Если я добавлю в журнал массив байтов внутри оператора collect this:

logger.info ("байтовый массив в строку:" + новая строка (byteItem, "UTF-8")) .Я вижу результат, который является входным XML.Но когда я пишу в журнале внутри map , как показано в приведенном выше фрагменте кода logger.info ("байтовый массив в строку:" + новая строка (byteArray, "UTF-8")) .Я не вижу результатов, так в чем же проблема?

Заранее спасибо за помощь.

...