Я бы хотел обернуть обычный файл таким образом, чтобы чтение из него (кусками) давало сжатые данные.
в настоящее время:
f = File.open(name)
while(string = f.read(@chunk_size) {
<do something>
}
Как бы я использовал Zlib, чтобы f.read возвращал @chunk_size сжатых данных?
Я нашел пример, подобный приведенному ниже, где можно использовать 'str', но он полагается на одновременное чтение всего файла, что невозможно, поскольку это может быть очень большой файл.
str = StringIO.new()
gz = Zlib::GzipWriter.new(str)
gz.write File.read('local-file.txt')
gz.close
str.string.read(@chunk_size)
спасибо
UPDATE:
Кажется, этот хак работает, но я уверен, что он может быть оснащен Zlib:
f = File.popen("/bin/gzip < #{name}" )
изучает, как делать с Zlib ..