Ruby 初心者スレッド Part 29
at TECH
89:デフォルトの名無しさん
09/07/06 05:08:25
ぬ
`close': closed stream (IOError) は、おーざっぱには
「閉じようと思ったIOオブジェクトが何者かによって既に閉じられてました姉さん事件です」
エラーだ
Zlib の close は引数の IO オブジェクトごと close する
通常は超親切機能なんだが、引数の IO オブジェクトがブロックつきだった場合、
IO 側のメソッドのブロックの ensure で行われる io.close で「既に閉じられてた」エラーが起こる
Zlib のブロックの最後で明示的に Zlib::GzipFile#finish を呼ぶと、厄介な Zlib::GzipFile#close は起動されない
…というようなことが、Zlib::GzipReader の GzipReader.wrap のマニュアルのとこに書いてあるぞ
URLリンク(www.ruby-lang.org)
>>84
require 'open-uri'
require 'zlib'
header = {'accept-encoding' => 'gzip'}
url = 'URLリンク(gimpo.2ch.net)'
url2 = 'URLリンク(anchorage.2ch.net)'
url3 = 'URLリンク(gimpo.2ch.net)'
[url,url2,url3].each do |url|
open(url, header) do |io|
Zlib::GzipReader.wrap(io) do |gz|
p gz.read
gz.finish # ここ!
end
end
end
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5383日前に更新/38 KB
担当:undef