我正在尝试解压缩823,000行文件,但我只收到26,000行文件。我是I / O的新手,出于某种原因,没有理解为什么会这样。这是我的代码:
Zlib::GzipReader.open( file_path ) do |gz|
puts gz.readlines.count
end
任何方向都会受到赞赏。 提前谢谢。
答案 0 :(得分:2)
好的,所以我设法解决了这个问题。 事实证明我使用的服务器日志文件中有大约29个数据流。 Zlib :: GzipReader只读取第一个。为了解决它,我不得不循环直到所有29个流都被读取:
File.open( file_path ) do |file|
zio = file
loop do
io = Zlib::GzipReader.new( zio )
uncompressed += io.read
unused = io.unused # where I'm writing my file
break if unused.nil?
zio.pos -= unused.length
end
end