○クラス入りのArrayListをバイナリ形式で保存・読み出し

using System;

[Serializable]
class data
{
	private String str;//privateな変数も保存される
	public data(String strPos)
	{
		str=strPos;
	}
	public void show()
	{
		Console.WriteLine(str);
	}
}



class Class1
{
	static void Main(string[] args)
	{
		Class1 obj=new Class1();
	}

	public Class1()
	{
		{//ファイルへ保存
			System.Collections.ArrayList ar = new System.Collections.ArrayList();
			ar.Add(new data("test1"));
			ar.Add(new data("test2"));
			ar.Add(new data("test3"));
			ar.Add(new data("test4"));
			SaveFile(ar,"test.dat");
		}
		{//ファイルから読み出し
			System.Collections.ArrayList ar=LoadFile("test.dat");
			for(int i=0;i<ar.Count;i++) ((data)ar[i]).show();
		}	
		Console.Read();
	}
	private void SaveFile(System.Collections.ArrayList ar,System.String filename)
	{
		System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
		System.IO.FileStream fs = new System.IO.FileStream(filename,System.IO.FileMode.Create);
		bf.Serialize(fs, ar);
		fs.Close();
	}
	private System.Collections.ArrayList LoadFile(System.String filename)
	{
		System.Collections.ArrayList ar;
		System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
		System.IO.FileStream fs = new System.IO.FileStream(filename,System.IO.FileMode.Open);
		ar=(System.Collections.ArrayList)bf.Deserialize(fs);
		fs.Close();
		return ar;
	}
}

処理結果
test1
test2
test3
test4



▲トップページ > Visual BASIC と C#