Ruby 初心者スレッド Part 29 at TECH
[2ch|▼Menu]
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