我有List<Employee>
对象,我想将此对象存储到文件流中。 (人类不易读取)
另外,我想从流中检索 List<Employee>
以显示UI上的员工列表(我正在使用.NET Windows Forms应用程序)
我还想更新文件中的特定记录 有人可以告诉我,我会这样做吗?
如果序列化是唯一的方法,请告诉我如何在更新特定记录信息时使用它。
提前致谢。
答案 0 :(得分:4)
使用序列化,您必须反序列化整个列表,然后将其序列化以执行更新操作。
如果您不希望输出具有人类可读性,BinaryFormatter
是一种可行的方法。但是,如果您真的想让随机人员无法阅读,请考虑将一些编码算法应用于RSA等序列化数据。
使用BinaryFormatter
进行序列化的示例:
using(FileStream fs = File.Open(FileName, FileMode.Create)) {
try
{
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, list);
}
catch (SerializationException)
{
// error handling
}
}
反序列化:
using(FileStream fs = File.OpenRead(FileName)) {
try
{
BinaryFormatter bf = new BinaryFormatter();
var list = (List<int>)bf.Deserialize(fs);
}
catch (SerializationException)
{
// Error handling
}
}
编辑:稍微更改了代码示例
答案 1 :(得分:3)