C# 怎样将对象写入到指定文件并且从指定文件读取数据并反序列化

如题... 如题 展开
 我来答
是吖宝q
推荐于2017-11-24 · TA获得超过611个赞
知道小有建树答主
回答量:192
采纳率:0%
帮助的人:180万
展开全部
/// <summary>
/// 文件序列化与反序列化
/// </summary>
public class Serialize
{
/// <summary>
/// 将对象序列化
/// </summary>
/// <param name="FilePath">文件(支持绝大多数数据类型)</param>
/// <param name="obj">要序列化的对象(如哈希表,数组等等)</param>
public static void FileSerialize(string FilePath, object obj)
{
if (System .IO.File .Exists(FilePath))
{
try
{
FileStream fs = new FileStream(FilePath, FileMode.Create);
BinaryFormatter sl = new BinaryFormatter();
sl.Serialize(fs, obj);
fs.Close();
}
catch
{
MessageBox.Show("序列化存储失败!");
}

}
else
{
MessageBox.Show("您读取的文件对象不存在!");
}

}

/// <summary>
/// 将文件反序列化
/// </summary>
/// <param name="FilePath">文件路径(必须是经过当前序列化后的文件)</param>
/// <returns>返回 null 表示序列反解失败或者目标文件不存在</returns>
public static object FileDeSerialize(string FilePath)
{
if (System.IO.File.Exists(FilePath))
{
try
{
FileStream fs = new FileStream(FilePath, FileMode.Open, FileAccess.Read, FileShare.Read);
BinaryFormatter sl = new BinaryFormatter();
object obg = sl.Deserialize(fs);
fs.Close();
return obg;
}
catch
{
return null;
}

}
else
{
return null;
}

}

}

使用范例:

string ConfigPath = @"C:\Loka.Mail\Config.dat";

// 将数组序列化
ArrayList ar = new ArrayList();
ar.Add("http://www.chianjiuquan.com");
ar.Add("中国酒泉网");
Serialize.FileSerialize( ConfigPath ,ar);

// 读取并反序列化

ArrayList ar = Me.File.Serialize.FileDeSerialize(ConfigPath) As ArrayList ;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式