C#应用程序设计教程 教学课件 作者 耿肇英 耿燚 第12章可扩展标记语言.pptVIP

C#应用程序设计教程 教学课件 作者 耿肇英 耿燚 第12章可扩展标记语言.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * * * * * * * * * * * * * 读字符串程序如下,请先用上例建一个文件,然后用此例读出。 using System; using System.IO; using System.Collections.Generic; //使用泛型集合类必须引入的命名空间 class ReadFile { static void Main() { string sLine=; //建立元素为string类型的List对象 Liststring arrText = new Liststring(); using(StreamReader objReader= new StreamReader(d://g.text)) //使用using语句以确保所涉及的文件在写入或读取操作后正确关闭 { do { sLine=objReader.ReadLine(); if(sLine!=null) arrText.Add(sLine); }while(sLine!=null); } Console.WriteLine(文件的内容如下:); foreach(string m in arrText) Console.Write({0},m); } } 6.1.4 序列化 对于一个复杂的数据结构,例如数组,用以上方法存入文件,就显得过于复杂了。为了简化这类问题,C#提出了序列化的概念,序列化包括序列化和反序列化,所谓序列化就是把类的对象作为一个整体存入文件,反序列化则是相反的过程。C#中的许多类都支持序列化,可以用如下方法判别一个类是否支持序列化: Dictionarystring, string h =//建立泛型哈希表对象 new Dictionarystring, string(); Type myType=h.GetType(); //如为true,支持序列化,这里myBool=true bool myBool=myType.IsSerializable; 【例6.1】下边的例子完成了一个哈希表对象的序列化。 using System; using System.IO; //使用泛型集合类引用的命名空间 using System.Collections.Generic; //使用序列化引用的命名空间 using System.Runtime.Serialization.Formatters.Binary; //使用序列化引用的命名空间 using System.Runtime.Serialization; class SerialFile { static void Main() { Dictionarystring,string h= //建立哈希表对象 new Dictionarystring,string(); h.Add(键1, 值1);//哈希表的每一个元素是一对键值 h.Add(“键2”, “值2”);//例如商品编号和商品名称 //通过键值,可以很容易找到键值对应的值 h.Add(键3, 值3); FileStream fs = //序列化数据 new FileStream(@d:/d.dat, FileMode.Create); BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(fs, h); fs.Close(); //下句为反序列化数据 fs = new FileStream(@d:/d.dat, FileMode.Open); h.Clear(); h = (Dictionarystring, string) formatter.Deserialize(fs); fs.Close();//下句显示反序列化数据 foreach (KeyValuePairstring, string h1 in h) Console.WriteLine({0}:{1};, h1.Key, h1.Value); } //注意哈希表用法 } 自己定义的类也可以序列化,只要在类定义前增加[Serializable]即可,书中例子首先定义了一个可序列化的类Person,建立若干Person类对象,存到List类对象中,并将List类对象序列化。 6.1.5 Stream类的其他派生类 Stream类的其他派生类包括:MemoryStream、BuffereStream、NetworkS

您可能关注的文档

文档评论(0)

118压缩包课件库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档