0
我想用一種方式來包裝一個普通文件,以便從它(以塊爲單位)讀取壓縮數據。如何使用zlib在ruby中實時壓縮文件流
目前:
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的做..
不幸的是它是一個二進制文件,所以我不認爲「each_line」會在這裏工作 – 2011-12-29 18:37:04