今回の記事は辞書型Dictionaryをバイナリシリアル化(保存)する方法とデシリアル(復元)の方法に関して紹介した記事です。初心者にも分かりやすいように記載しているので是非参考にしてみてください。
他にも文字列のバイナリシリアル化やそのバイナリファイルの読み込み方法、List配列をシリアル化などに関しての記事も書いているので是非そちらも興味があれば見ていってください。
「【C#】オブジェクトのバイナリシリアル化」
「【C#】バイナリファイルの読み込み」
「【C#】List配列をバイナリシリアル化(保存)とデシリアル化(復元)する方法。」
辞書型Dictionaryをバイナリシリアル化(保存)
まずはList配列をバイナリシリアル化してバイナリファイルとして保存してみましょう。
using Scraping.Define;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;
namespace Test1
{
class Test
{
public static void Main()
{
Dictionary<int,string> list = new Dictionary<int,string> {1:"2",3:"4"};
FileStream fs = new FileStream("指定のパス.obj",
FileMode.Create,
FileAccess.Write);
BinaryFormatter bf = new BinaryFormatter();
//シリアル化して書き込む
bf.Serialize(fs, list);
fs.Close();
}
}
}
バイナリ形式で保存する方法は簡単で、上記のようにバイナリ形式に変換したものをファイルストリームでファイルに保存するのみです。
辞書型Dictionaryをデシリアル化(復元)
次にバイナリ形式で保存したList配列の読み込み方法に関してご紹介します。
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
namespace Test1
{
class Test
{
//シリアライズ読み込み(バイナリ→文字列)
public static void Main()
{
FileStream fs = new FileStream("指定パス.obj",
FileMode.Open,
FileAccess.Read);
BinaryFormatter f = new BinaryFormatter();
//読み込んで逆シリアル化する
var obj = (Dictionary<int,string>)f.Deserialize(fs);
Console.WriteLine(obj[1])
Console.WriteLine(obj[3])
fs.Close();
}
}
}
読み込み時はstringなどの方以外は、型キャストをする必要があるので上記コードのように丸カッコを先頭に付けます。「(Dictionary<int,string>) =(型)変数」みたいな感じです。出力は下記です。
2
4
これでバイナリファイルから元の辞書型データをキーを使って呼び出し、辞書型として再度扱うことができます。
以上で今回の記事を終了します。他にもList配列に似ているList配列に関してもバイナリ変換する方法を記事に書いていますし、C#関連の記事も多数記載しています。そちらも是非参考にしてください。
コメント