网站风格: 红 | 蓝
搜索:  全站?
首页 |  Java开发 |  DOTNET开发 |  PHP开发 |  ASP技术 |  Web开发 |  数据库应用 |  网络文摘 |  作品集 |  下载 |  留言
文章聚合
  J2EE  |   框架技术  |   Javascript  |   AJAX  |   J2ee Server  |   J2ME  |
  WinForm开发  |   Asp.net  |   C#语言  |   服务器  |   第三方控件  |
  PHP笔记  |   Linux  |   第三方代码  |
  ASP教程  |   ASP实用代码  |   ASP笔记  |   服务器  |
  CSS样式表  |   Photoshop设计  |   Flash  |   HTML 小技巧  |   Dreamweaver  |   XML技术  |
  SQL Server  |   Oracle  |   MySQL  |
  散文  |   幽默  |   杂文  |
  Web 项目  |   杂七杂八  |
  第三方代码  |   实用工具  |   作品下载  |   帮助文档  |
奇点网 - DOTNET开发 - C#语言 - 流与对象序列化
流与对象序列化
来源:http://www.7dit.com     作者:7dit     发布日期:2008-09-21 01:33:58   点击量:495
流:stream 是一种传送二进制数据的通道

流的操作方式是:
1.建立流(通过对象/通过文件...)
2.使用流,流作为一种通过通常需要被第三方函数进行操作,流仅仅只是一种媒介。
3.关闭流。

两种流的使用:

//文件流
FileStream fs = new FileStrame("文件名及路径",FileMode枚举即文件的操作方式);
//流的使用......
fs.close();

//内存流
MemoryStream ms = new MemoryStream(byte[]通常为一个二进制数组的内存空间,即对象);
//流的使用...
ms.close();


当我们读取流时可以通过一些类的方法格式化这些二进制数据,如:
StreamReader r = new StreamReader(fs); 这时就可以对流进行格式化操作
Image.FromStream(fs); //可以返回图片,当然此处的流必需是一种图片格式的流

如果没有这些方法怎么暂时保存流的数据呢? 因为流就是二进制数据,所以理所当然可以用byte[]数组进行保存以供我们随时使用。


public byte[] getStream(string path)
{
FileStream fs = new FileStream(path, FileMode.Open);
byte[] b = new byte[fs.Length]; //定义流长度的数据
for (int i = 0; i < fs.Length; i++)
{
b[i] = (byte)fs.ReadByte();
}
return b;
}


以上代码可以将任意文件通过流转换成二进制的数组,即流数据,通过该数组我们可以随时将它还原成流,流是数据传送的根本,SQL SERVER中也为流的二进制数据文件提供了IMAGE类型的保存。


序列化:

序列化简单点说就是将对象转换成二进制的流,并将流保存成文件,反序列化则进行复原的操作

命名空间: System.Runtime.Serialization.Formatters.Binary;



private void writeSeriStu(Student stu)
{
FileStream fs = new FileStream("stu.save", FileMode.Create);

BinaryFormatter bf = new BinaryFormatter(); //二进制格式化对象

bf.Serialize(fs, stu); //通过该方法将对象格式化成二进制的数据并通过流输出

fs.Close();
}

private void readSeriStu(ref Student stu)
{

FileStream fs = new FileStream("stu.save", FileMode.Open);



BinaryFormatter bf = new BinaryFormatter();

stu = (Student)bf.Deserialize(fs); //将流还原成对象
fs.Close();
}


前提是Student必需指示为一个可序列化的类 [Serializable]
标签:   C#  |  DOTNET  |  代码  |
留言 | 链接 | 标签 | 风格: 红 蓝   
Copyright © 2005 奇点中文网--7dit.com
闽ICP备05001292号