Как распаковать из rx.Observable - PullRequest
0 голосов
/ 12 февраля 2020

Я загружаю сжатый файл и построчно читаю разархивированный контент. Мой код выглядит следующим образом:

        ChannelSftp channel = getJSchChannel();
        try (InputStream is = channel.get(fileName);
             GZIPInputStream gis = new GZIPInputStream(is);
             BufferedReader reader = new BufferedReader(new InputStreamReader(gis)))
        {
            reader.readLine(); 
            ...
        }

Поскольку разархивирование и остальная часть блока требуют значительных ресурсов процессора, я бы хотел, чтобы он работал параллельно с загрузкой файла (это огромный файл). Я думал об использовании rx.Observable для обработки всего потока данных, но я столкнулся с проблемой разархивирования. Предположим, я обертываю поток ввода файла наблюдаемым:

Observable<byte[]> obs = StringObservable.from(channel.get(fileName));

Как мне продолжить отсюда? Есть ли способ распаковать содержимое наблюдаемой?

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