我想要阅读一些非常大的.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
答案 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