解压缩.gz文件并按块准备好

时间:2014-11-09 10:30:08

标签: ruby compression

我想要阅读一些非常大的.gz文件。但是我不想一次读取每个文件因为它可能会损坏RAM,而是我想通过块读取它。我怎样才能做到这一点?在文档中,它通过读取整个文件来描述传统方法:

Zlib::GzipReader.open('hoge.gz')  do |gz|
  print gz.read
end

File.open('hoge.gz') do |f|
  gz = Zlib::GzipReader.new(f)
  print gz.read
  gz.close
end

1 个答案:

答案 0 :(得分:3)

在任何地方都没有这方面的例子。我需要阅读文档。

require 'zlib'

def read_gz_by_chunk

infile = open("file_name.gz")
rgz = Zlib::GzipReader.new(infile)

   while(!rgz.eof)
     data = rgz.readpartial(256)
     # do stuff
     puts data
   end

end