我正在尝试在一个大型文件(4 gigs)上使用 Zlib::Deflate.deflate。这样做有明显的问题,第一个问题是我不能一次将整个文件加载到内存中。Zlib::GzipWriter 可以工作,因为它适用于流,但它不是 zlib 压缩。有任何想法吗?
问问题
2097 次
1 回答
3
你可以尝试实例化一个 Zlib::Deflate 流并从你的大文件中零碎地提供数据。Zlib::Deflate::deflate 声称在幕后做这种事情。
它看起来像这样:
z = Zlib::Deflate.new
File.open "big_uncompressed_file" do |f|
File.open "big_compressed_file", "w" do |w|
f.each do |str|
w << z.deflate str, Zlib::SYNC_FLUSH
end
end
end
z.finish
z.close
于 2010-04-12T16:36:59.093 回答