C#编程技术基础课件作者武汉厚溥教育科技有限公司12_C#面向对象高级编程12章

上传人:E**** 文档编号:89085806 上传时间:2019-05-17 格式:PPTX 页数:25 大小:1,023.25KB
返回 下载 相关 举报
C#编程技术基础课件作者武汉厚溥教育科技有限公司12_C#面向对象高级编程12章_第1页
第1页 / 共25页
C#编程技术基础课件作者武汉厚溥教育科技有限公司12_C#面向对象高级编程12章_第2页
第2页 / 共25页
C#编程技术基础课件作者武汉厚溥教育科技有限公司12_C#面向对象高级编程12章_第3页
第3页 / 共25页
C#编程技术基础课件作者武汉厚溥教育科技有限公司12_C#面向对象高级编程12章_第4页
第4页 / 共25页
C#编程技术基础课件作者武汉厚溥教育科技有限公司12_C#面向对象高级编程12章_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《C#编程技术基础课件作者武汉厚溥教育科技有限公司12_C#面向对象高级编程12章》由会员分享,可在线阅读,更多相关《C#编程技术基础课件作者武汉厚溥教育科技有限公司12_C#面向对象高级编程12章(25页珍藏版)》请在金锄头文库上搜索。

1、第12章,C#中的文件处理,实现IComparable接口的类,那么在集合中它的对象就可以使用默认排序方式进行排序 泛型接口提供类型安全,并且简化了实现代码 实现IComparer接口的排序类对象传递给Sort()方法可以根据应用程序的业务逻辑进行相应的排序 迭代器可以使得用foreach循环遍历一个集合或产生一个序列,回顾,了解System.IO命名空间 文件和文件夹的常用操作方法 使用文件流读写文本文件 使用文件流读写二进制文件 掌握打开文件、保存文件对话框的使用 序列化和反序列化,本章目标,为什么需要操作文件,如何使得程序中的数据持久化?,用数据库实现,成本太大,使用于大批量数据,使用文

2、件对数据进行持久化,用程序操作文件,文件的应用场合,计算机上有多种文件可以保存数据,这些文件你都熟悉吧?,扩展新闻快客,保存频道信息,文件操作,文件操作还包括拷贝、移动、删除等等 .NET提供一个File类,提供各种操作文件方法,目录操作,Directory 类提供对文件夹的拷贝、移动、删除等操作,小结,File类与Directory类,public static class File,public static class Directory,静态类,如何读写文本文件,创建一个文件流,创建相应的读写器(reader and writer),执行读写操作,关闭读写器(reader and wr

3、iter),关闭文件流,读写一个文件的步骤:,1,2,3,4,5,将数据写入文本文件,将文本框的内容写入Text.txt文件,FileStream myfs = new FileStream(path, FileMode.Create, FileAccess.Write); StreamWriter mySw = new StreamWriter(myfs); mySw.Write(content); mySw.Close(); myfs.Close();,创建一个文件流,创建写入器,写入一个流,写入操作,关闭文件流与写入器,创建文件流,FileStream myfs = new FileSt

4、ream( path, FileMode.Create);,指定文件路径,FileMode枚举 Create:创建一个新文件 Open:指定打开现有文件 CreateNew:新建一个文件,指定如何打开文件,需要引入System.IO命名空间-提供文件操作的类 文件流用于( FileStream类)读写文件,如果文件存在、则改写旧文件,如果文件存在会发生异常,创建写入器,文本文件写入器:StreamWriter,StreamWriter mySw = new StreamWriter(myfs); mySw.Write(content); /mySw.WriteLine(content); my

5、Sw.Close();,传入文件流,写入方法,关闭写入器,文本文件读取器:StreamReader,写入一行数据的方法,StreamReader mySr = new StreamReader(myfs); content = mySr.ReadToEnd(); /content = mySr.ReadLine(); mySr.Close();,传入文件流,读取到文件末尾,读取一行,关闭读取器,读取文本文件,FileStream myfs = new FileStream(path, FileMode.Open, FileAccess.Read); StreamReader mySr = ne

6、w StreamReader(myfs); content = mySr.ReadToEnd(); txtContent.Text = content; mySr.Close(); myfs.Close();,读取文本文件:,创建一个文件流,创建一个读取器,将流从当前位置读到末尾,关闭,文本文件不使用文件流的读写,StreamWriter mySw = new StreamWriter(path); mySw.Write(content); mySw.Close();,StreamWriter允许直接将字符串写入文件,直接指定路径,StreamReader允许直接读取文件内容,StreamRe

7、ader mySr = new StreamReader(path); content = mySr.ReadToEnd(); txtContent.Text = content; mySr.Close();,直接指定路径,自动创建文件,打开和保存文件对话框,二进制文件的读写- BinaryReader类,二进制文件的读写-BinaryWriter类,什么是序列化,Profile对象,界面语言:英语,RssFeed对象,存储 介质,存储,序列化是将对象的状态存储到特定存储介质中的过程,代理服务器,什么是特性,Serializable abstract class FeedBase,标识这个类是

8、可序列化的,可序列化就是这个类的一个特性,描述性关键字 对程序中的元素如:类、字段、方法、属性 命名时以Attribute结尾: SerializableAttribute 使用时省略Attribute,public sealed class SerializableAttribute,特性其实是一个类,class Program Obsolete(“不要使用旧的方法, 请使用新的方法“, true) static void Old() static void New() public static void Main() Old(); ,使用序列化,fileStream = new File

9、Stream(“profile.bin“, FileMode.Create); BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(fileStream, Profile);,Serializable abstract class FeedBase,要存储的对象标记为可序列化,包括他的父类和属性的类,使用二进制方式存储对象,二进制格式化器,将对象以二进制方式格式化为流,Serialize ( Stream serializationStream, Object graph),流,对象,Serialize的用法:,序列化的过程,格式化

10、程序,对象可否序列化,子类成员 可否序列化,将对象格式化,写入存储介质,异常退出,序列化对象中的子类成员,Y,Y,N,N,什么是反序列化,把对象存储成文件,怎么取出来呢?,读取,反序列化则是从特定存储介质中的数据重新构建对象的过程,存储 介质,Profile对象,界面语言:英语,RssFeed对象,代理服务器,数据转换为对象,使用反序列化,将序列化好的Profile数据反序列化为对象,fileStream = new FileStream(“profile.bin“, FileMode.Open); BinaryFormatter bf = new BinaryFormatter(); Pro

11、file = (Profile)bf.Deserialize(fileStream);,将指定流反序列化,类型转换,public Object Deserialize ( Stream serializationStream ),Deserialize的用法:,流,对象,需要类型转换,序列化与反序列化,几个重要的类 SerializableAttribute Formatter 可以将对象从一个应用程序发送到另一个应用程序中 使用场合 Web Service 分布式应用,File是静态对象,实现对文件的创建、拷贝、移动和删除等操作 Directory是静态对象,实现对文件夹的操作 FileStream对象是文件流对象,创建该对象时需要指定操作文件的路径、文件的打开方式和文件访问方式 StreamReader和StreamWriter对文件进行读写操作,StreamReader是文件读取对象,StreamWriter是文件写入对象 BinaryReader和BinaryWriter对文件进行二进制读写操作。 序列化是将对象的状态存储到特定的文件中 反序列化是将存储在文件中的数据重新构建为对象 类对象是否可被序列化,关键是在类的头部添加Serializable关键字,总结,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号