Create  Edit  Diff  FrontPage  Index  Search  Changes  Login

UsingStringIO

StringIOの使い方

Ruby 1.8.4では以下の方法はエラー

io = StringIO.new('')
...
io.close
buff = io.string # エラー

そのため、以下のいずれかの方法を利用する。

取り出す文字列の用意とStringIOの生成を同時に行う

io = StringIO.new(buff = '')
io.write 'foo'
...
io.close
# buffを利用する

ブロックを使う

require 'stringio'
require 'zlib'

def to_zip(data, &p)
  StringIO.open('', 'w') do |out|
    zip(data, out)
    p.call(out.string)
  end
end

def zip(data, out)
  gz = Zlib::GzipWriter.new(out)
  gz.write(data)
  gz.finish
end

to_zip('abcdef') do |x|
  print x
end

元の日記

http://www.artonx.org/diary/20050811.html http://www.artonx.org/diary/20050812.html

Last modified:2011/07/13 23:14:23
Keyword(s):
References: