Я пытаюсь сжать кучу файлов и сделать данные пригодными для использования через поток.
Я бы хотел сохранить как можно меньший объем памяти.
Моя идея состояла в том, чтобы реализовать поток, в котором я получил несколько объектов FileStream в качестве членов данных. Когда вызывался метод Read в моем потоке, я считывал некоторые данные из одного из моих файловых потоков и использовал экземпляр ZipOutputStream для записи сжатых данных во временное хранилище, в которое я затем перенаправлял бы запрос на чтение.
Этот поток временного хранилища будет просто очередью байтов. Поскольку эти байты перемещаются в буфер (посредством вызова Read), они будут удалены из очереди. Таким образом, я буду хранить только те байты, которые еще не были прочитаны.
К сожалению, кажется, что когда я располагаю ZipOutputStream, он должен писать в случайных местах, чтобы создать действительный zip-файл. Это помешает мне использовать мое решение "мимолетные данные".
Надеюсь, это все понятно :)
Есть ли другой способ минимизировать использование памяти при создании zip-файлов? Пожалуйста, помогите!
Спасибо!