我有一个二进制字符串,它包含两个gzip二进制文件的拼接。(我正在读取一个将两个gzip文件拼接在一起的二进制日志文件)
换句话说,我的情况相当于:
require 'zlib'
require 'stringio'
File.open('t1.gz', 'w') do |f|
gz = Zlib::GzipWriter.new(f)
gz.write 'part one'
gz.close
end
File.open('t2.gz', 'w') do |f|
gz = Zlib::GzipWriter.new(f)
gz.write 'part 2'
gz.close
end
contents1 = File.open('t1.gz', "rb") {|io| io.read }
contents2 = File.open('t2.gz', "rb") {|io| io.read }
c = contents1 + contents2
gz = Zlib::GzipReader.new(StringIO.new(c))
gz.each do | l |
puts l
end
当我尝试解压合并的字符串时,只能得到第一个字符串。我该如何获取这两个字符串?