Ruby - 基本的な文法 - Marshal ダンプとロード


クラウディア 


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 でオブジェクトを冷凍保存

audiobook.jp
AbemaTV 無料体験
JETBOY
EMEET 1
U-NEXT
アフィリエイトのアクセストレード
健康サポート特集
葬送のフリーレン Prime Video
EaseUS
【usus ウズウズ】
サウンドハウス
earthcar(アースカー)
5G CONNECT
ハイスピードプラン
TikTok Shop 【リピート用プログラム】
Amazonギフトカード
ベルリッツ
ネットオークションの相場、統計、価格比較といえばオークファン
損保との違い
それがだいじWi-Fi
薬屋の独り言