From: eden li Date: 2007-03-14T10:56:45+09:00 Subject: Re: zlib large files problem The default decompress method works for me... $ irb -r zlib irb(main):001:0> File.stat('threehundred.gz').size / (1024**2) => 81 irb(main):002:0> Zlib::GzipReader.open('threehundred.gz') { |r| File.open('threehundred', 'wb') { |f| f.write r.read } } => 314835846 irb(main):003:0> File.stat('threehundred').size / (1024**2) => 300 What version of ruby are you using? On Mar 14, 2:42 am, "greg" wrote: > I am trying to decompress a 80MB file (decompresses to 300MB), but I > keep getting a buffer error. I thought I had a workaround using > chunks, but it fails with 20M left to go. Any help or suggestions are > greatly appreciated. > > in `read': buffer error (Zlib::BufError) > > class Zlib::GzipReader > def each_chunk(chunk_size=1024) > yield read(chunk_size) until eof > end > end > > gz = Zlib::GzipReader.open(zip_file) > > File.open( non_zip_file, 'wb' ) do |f| > gz.each_chunk {|chunk| f.write(chunk)} > end