Я сталкиваюсь с проблемой при чтении списка наблюдаемых с 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")) .Я не вижу результатов, так в чем же проблема?
Заранее спасибо за помощь.