在应用会话之间持久存储集合
2008-03-12 13:30
99 查看
一个集合,如ArrayList,List<T>,Hashtable,或Dictionary<T,U>,其中存储着应用信息。可以使用这些信息将应用环境调整为上一个已知的设置(如:窗口大小,窗口摆放,当前显示的工具条等等,)还可以用它来允许用户从其最后一次关闭处启动应用。也就是说,如果用户在编辑一个发货单,因为太晚了而需要关闭计算机,应用它能准确地知道下一次启动应用时要显示哪个发货单。
利用方法是对象序列话到文件,并从文件反序列化:
public static void SaveObj<T>(T obj, string dataFile)
...{
FileStream FS = File.Create(dataFile);
BinaryFormatter binSerializer = new BinaryFormatter( );
//序列化对象,并写到文件中
binSerializer.Serialize(FS, obj);
FS.Close( );
}
public static T RestoreObj<T>(string dataFile)
...{
FileStream FS = File.OpenRead(dataFile);
BinaryFormatter binSerializer = new BinaryFormatter( );
//从文件反序列化对象
T obj = (T)binSerializer.Deserialize(FS);
FS.Close( );
return (obj);
}
dataFile参数接受一个串值,SaveObj<T>方法接受一个对象,并试图将其进行序列化到一个文件,反过来,RestoreObj<T>方法从文件中删除SaveObj<T>方法中创建的序列化对象。
以下是测试代码:
public static void TestSerialization( )
...{
// Create a List<int> object to save/restore to/from a file.
Console.WriteLine( );
List<int> test = new List<int>( );
test.Add(1);
test.Add(2);
// Display this object's contents and save it to a file.
foreach (int i in test)
Console.WriteLine(i.ToString( ));
SaveObj<List<int>>(test, "TEST.DATA");
// Restore this object from the same file and display its contents.
List<int> testNew = new List<int>( );
testNew = RestoreObj<List<int>>("TEST.DATA");
foreach (int i in testNew)
Console.WriteLine(i.ToString( ));
}
利用方法是对象序列话到文件,并从文件反序列化:
public static void SaveObj<T>(T obj, string dataFile)
...{
FileStream FS = File.Create(dataFile);
BinaryFormatter binSerializer = new BinaryFormatter( );
//序列化对象,并写到文件中
binSerializer.Serialize(FS, obj);
FS.Close( );
}
public static T RestoreObj<T>(string dataFile)
...{
FileStream FS = File.OpenRead(dataFile);
BinaryFormatter binSerializer = new BinaryFormatter( );
//从文件反序列化对象
T obj = (T)binSerializer.Deserialize(FS);
FS.Close( );
return (obj);
}
dataFile参数接受一个串值,SaveObj<T>方法接受一个对象,并试图将其进行序列化到一个文件,反过来,RestoreObj<T>方法从文件中删除SaveObj<T>方法中创建的序列化对象。
以下是测试代码:
public static void TestSerialization( )
...{
// Create a List<int> object to save/restore to/from a file.
Console.WriteLine( );
List<int> test = new List<int>( );
test.Add(1);
test.Add(2);
// Display this object's contents and save it to a file.
foreach (int i in test)
Console.WriteLine(i.ToString( ));
SaveObj<List<int>>(test, "TEST.DATA");
// Restore this object from the same file and display its contents.
List<int> testNew = new List<int>( );
testNew = RestoreObj<List<int>>("TEST.DATA");
foreach (int i in testNew)
Console.WriteLine(i.ToString( ));
}
相关文章推荐
- android应用存储用户信息,map集合与用户对象存储
- 福彩双色球中红球由6个1-33之间的数字组合,且不重复,编写代码,使用Set集合来存储随机生成的1-33的数字,然后输出生成的数字
- LINUX目录和文件各自的权限说明,以及目录和文件权限之间的关系(应用:配置linux下上传图片的存储目录)
- Redis是一种面向“key-value”类型数据的分布式NoSQL数据库系统,具有高性能、持久存储、适应高并发应用场景等优势。它虽然起步较晚,但发展却十分迅速。
- Atitit 容器化技术之道 attilax著 1. 概念 1 1.1. 容器是应用服务器中位于组件和平台之间的接口集合。 1 1.2. 有时候也指集合的概念,里面可以存放不同对象 2 1.3. 、新
- 企业级搜索应用服务器Solr4.10.4部署开发详解(2)- Solr使用-创建集合表、存储、查询
- 把会话数据持久存储到远程服务器中
- 把会话数据持久存储到远程服务器中
- 数据结构之线性表的静态单链表存储结构(应用求集合(A-B)&&(B-A))
- 本文是笔者根据数据库编程经验,利用C++语言的模板、继承、授权、多态等面向对象特性,借鉴命令模式,实现了对象在关系数据中的存储,降低应用系统与数据库之间的耦合,提高开发效率。
- 在Eclipse中测试MySQL-JDBC(5)查询1-4之间的所有员工,并且封装为一个个的employee对象,并且存储到一个集合中
- 同一个Tomcat不同Web应用之间共享会话Session
- DA的存储过程 服务器端返回参数的应用方法
- Android应用开发基础之数据存储和界面展现(二)
- android关于data/data/目录下,各应用之间的私有数据读写
- 总结JavaScript三种数据存储方式之间的区别
- 双控存储之间的心跳线都跑了哪些流量
- 统一Windows Azure和一般web应用之间的文件操作代码(转+译)
- java中集合与数组之间的转化
- 行存储和列存储--大数据应用选择