RxJava无法在地图中获得价值

时间:2018-10-17 10:51:28

标签: java rx-java reactive-programming

从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 运算符内部的字节数组,如下所示:

logger.info(“字符串的字节数组:” +新的String(byteItem,“ UTF-8”)) 。我看到的结果是输入xml。但是当我在 map 中写日志时,如上面的代码所示 logger.info(“字符串的字节数组:” +新的String(byteArray,“ UTF-8”)) 我看不到任何结果,那是什么问题?

预先感谢您的帮助。

0 个答案:

没有答案