0
普通のファイルを(チャンクで)読み込んで圧縮データを出力するようにしたいと思います。rubyでファイルストリームを即座に圧縮するにはどうすればいいですか?
現在:
f = File.open(name)
while(string = f.read(@chunk_size) {
<do something>
}
は、どのように私は、圧縮されたデータのZlibのようf.read返し@chunk_sizeを使うのでしょうか?
私は以下のような例を見つけましたが、 'str'は使用できますが、非常に大きなファイルである可能性があるため、ファイル全体を一度に読むことに依存しています。
str = StringIO.new()
gz = Zlib::GzipWriter.new(str)
gz.write File.read('local-file.txt')
gz.close
str.string.read(@chunk_size)
おかげ
UPDATE:
このハックは動作しているようですが、私はそれがZlibのを計装することができ確信している:Zlibのをどうするかを検討してい
f = File.popen("/bin/gzip < #{name}")
..
残念ながら、それはバイナリファイルなので、私は "each_line"がここで動作するとは思わない –