我有一個二進制字符串,它包含兩個gzip二進制文件連接起來。 (我讀級聯2個gzip的文件一起二進制文件日誌文件)Ruby解析gzip二進制字符串
換句話說,我的equivalient:
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
當我嘗試解壓縮合並字符串,我只得到第一串。我如何獲得這兩個字符串?
首先,它將有助於獲得您正在使用的實際代碼,而不是一些近似值。其次,你如何解壓縮數據? – 2012-01-10 16:00:10
@FrederickCheung他通過GzipReader解壓縮。而這個代碼可能是他的實際代碼,只是沒有不必要的和令人困惑的業務邏輯。 – WattsInABox 2014-04-16 14:12:27