序列化对象到文件
2015-11-26 11:59
288 查看
最初是为了把Cookie 保存到本地,然后随时加载这个Cookie免登陆的
后来把它改了泛型,可以保存所有有 Serializable 的类对象
public static bool WriteObjToDisk<T>(string file, T obj) where T:class
{
//file = file.Replace(":", ":");
if (file == "") return false;
using (System.IO.Stream stream = System.IO.File.Create(file))
{
try
{
//Console.Out.Write("Writing cookies to disk... ");
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
formatter.Serialize(stream, obj);
//Console.Out.WriteLine("Done.");
return true;
}
catch (Exception e)
{
// Console.Out.WriteLine("Problem writing cookies to disk: " + e.GetType());
}
}
return false;
}
public static T ReadObjFromDisk<T>(string file) where T : class
{
// file = file.Replace(":", ":");
try
{
using (System.IO.Stream stream = System.IO.File.Open(file, System.IO.FileMode.Open))
{
// Console.Out.Write("Reading cookies from disk... ");
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
// Console.Out.WriteLine("Done.");
return (T)formatter.Deserialize(stream);
}
}
catch (Exception e)
{
return null;
}
}
后来把它改了泛型,可以保存所有有 Serializable 的类对象
public static bool WriteObjToDisk<T>(string file, T obj) where T:class
{
//file = file.Replace(":", ":");
if (file == "") return false;
using (System.IO.Stream stream = System.IO.File.Create(file))
{
try
{
//Console.Out.Write("Writing cookies to disk... ");
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
formatter.Serialize(stream, obj);
//Console.Out.WriteLine("Done.");
return true;
}
catch (Exception e)
{
// Console.Out.WriteLine("Problem writing cookies to disk: " + e.GetType());
}
}
return false;
}
public static T ReadObjFromDisk<T>(string file) where T : class
{
// file = file.Replace(":", ":");
try
{
using (System.IO.Stream stream = System.IO.File.Open(file, System.IO.FileMode.Open))
{
// Console.Out.Write("Reading cookies from disk... ");
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
// Console.Out.WriteLine("Done.");
return (T)formatter.Deserialize(stream);
}
}
catch (Exception e)
{
return null;
}
}
相关文章推荐
- haproxy + rabbitmq + keepalived的高可用环境搭建
- Node.js开发者必须熟悉的四个JavaScript概念
- WebService SOAP、Restful和HTTP(post/get)请求区别
- mpls代码位置
- LA 3695 Distant Galaxy(扫描线)
- python
- solr的or查询
- Mac下利用Cordova打包 iOS App以及出现的问题
- [知其然不知其所以然-11] turbo功能如果没有在所有的cpu上都使能会怎么样?
- Android屏幕适配全攻略(最权威的官方适配指导)
- sql server 中将由逗号“,”分割的一个字符串,转换为一个表,并应用与 in 条件
- SimpleAdapter真不简单!
- C语言中简单的循环
- springMVC 一些文章
- Oracle索引
- 实现带快速导航的ListView(自定义View和自定义ViewGroup的结合),可直接使用和修改使用
- Abp Application级别的生命周期
- REST API权限集成设计
- 错误处理try-catch,异常抛出throws、throw
- 不是为了你而演奏