- 1. 概要
- 2. オブジェクトのダンプとロード
- 3. 参考サイト
1. 概要
オブジェクト指向型の言語というと、バイナリファイルの読み書きをどうするんだろうという悩みがあるのですが・・・。
オブジェクトそのものをダンプする仕組みが用意されたりしています。
「ruby」では「Marshal」?
「C#」の「Serialization」ってなものと同じようなもの(全然間違いかもしれません)と理解しています。
2. オブジェクトのダンプとロード
あくまで一例として。
require 'pathname'
hash1 = { :foo => 'bar', :hoge => 'fuga' }
hash2 = Hash.new
filename = '/tmp/sample01.dmp'
Pathname.new(filename).open('wb') do | file |
Marshal.dump(hash1, file)
end
Pathname.new(filename).open('rb') do | file |
hash2 = Marshal.load(file)
end
puts("[#{sprintf("%3d", __LINE__)}] hash2=[#{hash2}] ")
というソースを書いて、実行すると下記の結果が得られます。
[ 16] hash2=[{:foo=>"bar", :hoge=>"fuga"}]
3. 参考サイト
本ページは、下記のサイトを参考にさせていただきました。
「module Marshal (Ruby 2.5.0)」
「Marshal でオブジェクトを冷凍保存」
|
|