Visual C#.NET程序设计教程 第2版 工业和信息化普通高等教育十二五 规划教材立项项目 教学课件 ppt 作者 罗福强 白忠建 杨剑 C# Ch12(人邮)

上传人:w****i 文档编号:94772013 上传时间:2019-08-11 格式:PPT 页数:28 大小:642.50KB
返回 下载 相关 举报
Visual C#.NET程序设计教程 第2版 工业和信息化普通高等教育十二五 规划教材立项项目 教学课件 ppt 作者 罗福强 白忠建 杨剑 C# Ch12(人邮)_第1页
第1页 / 共28页
Visual C#.NET程序设计教程 第2版 工业和信息化普通高等教育十二五 规划教材立项项目 教学课件 ppt 作者 罗福强 白忠建 杨剑 C# Ch12(人邮)_第2页
第2页 / 共28页
Visual C#.NET程序设计教程 第2版 工业和信息化普通高等教育十二五 规划教材立项项目 教学课件 ppt 作者 罗福强 白忠建 杨剑 C# Ch12(人邮)_第3页
第3页 / 共28页
Visual C#.NET程序设计教程 第2版 工业和信息化普通高等教育十二五 规划教材立项项目 教学课件 ppt 作者 罗福强 白忠建 杨剑 C# Ch12(人邮)_第4页
第4页 / 共28页
Visual C#.NET程序设计教程 第2版 工业和信息化普通高等教育十二五 规划教材立项项目 教学课件 ppt 作者 罗福强 白忠建 杨剑 C# Ch12(人邮)_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《Visual C#.NET程序设计教程 第2版 工业和信息化普通高等教育十二五 规划教材立项项目 教学课件 ppt 作者 罗福强 白忠建 杨剑 C# Ch12(人邮)》由会员分享,可在线阅读,更多相关《Visual C#.NET程序设计教程 第2版 工业和信息化普通高等教育十二五 规划教材立项项目 教学课件 ppt 作者 罗福强 白忠建 杨剑 C# Ch12(人邮)(28页珍藏版)》请在金锄头文库上搜索。

1、2019/8/11,第十二章 文件操作与编程技术,1. 总体要求 理解文件与流的区别,了解常用的操作流的类的功能。 了解文本文件和二进制文件的区别,掌握文本文件或二进制文件读写方法。 了解序列化和反序列化的概念,掌握序列化和反序列化的实现方法。 熟悉文件操作控件,掌握利用它们来打开或保存文件的实现方法。 了解XML的概念和及其基本的语法规则,初步掌握操作XML文档的编程方法。 2. 学习重点 文本文件或二进制文件读写。 文件操作控件使用。 XML文档的创建、查询和编辑。,第12章 文件操作与编程技术,主要内容,XML文档编程,12.3,12.2,文件的输入/输出,文件操作控件,12.1文件的输

2、入/输出,12.1.1 文件I/O与流 12.1.2 读写文本文件 12.1.3 读写二进制文件 12.1.4 对象的序列化,返回,12.1.1 文件I/O与流,文件和流是的区别: 文件是存储在存储介质上的数据集,是静态的,它具有名称和相应的路径。 当打开一个文件并对其进行读写时,该文件就成为流(stream)。 但是,流不仅仅是指打开的磁盘文件,还可以是网络数据、控制台应用程序中的键盘输入和文本显示,甚至是内存缓存区的数据读写。 因此,流是动态的,它代表正处于输入/输出状态的数据,是一种特殊的数据结构 1流的基本操作 读取、写入、定位,2操作流的类,(1)Stream类 主要属性有:CanR

3、ead、CanSeek、CanTimeout、CanWrite 、Length、Position、ReadTimeout、WriteTimeout等; 主要方法有:BeginRead、BeginWrite、Close、EndRead)、EndWrite、Flush、Read、ReadByte、Seek、Write、WriteByte等 (2)TextReader和TextWriter类及其派生类 StreamReader 、 StringReader StreamWriter 和 StringWriter (3) FileStream、MemoryStream和BufferStream类,12

4、.1.2 读写文本文件,读写文本文件主要使用TextReader和TextWriter,也可以使用其派生类StreamReader和StreamWriter或者StringReader和StringWriter。 TextReader类及其派生类的常用方法有: Close、Read、ReadBlock、ReadLine、ReadToEnd。 TextWriter类及其派生类的常用方法有: Close、Flush、Write、WriteLine。,案例演示,【实例12-1】设计一个简单的日志程序,效果如图12-1所示 操作演示 详细代码: 见教材,12.1.3 读写二进制文件,二进制文件是以二进

5、制代码形式存储的文件。 主要使用BinaryReader和BinaryWriter类来读写二进制文件,它们都属于System.IO命名空间。 BinaryReader类的常用方法有: Close、ReadBoolean、ReadByte、ReadBytes、ReadChar、ReadChars、ReadDecimal、ReadDouble、ReadInt16、ReadInt32、ReadInt64、ReadSingle、ReadString等。 BinaryWriter类的常用方法有: Close、Flush、Seek、Write。 注意,它们不能直接操作磁盘文件或内存缓冲,编程时要先构造一个

6、流对象(FileStream、MemoryStream或BufferStream等),再通过流对象让它们间接地读写磁盘文件或内存缓冲。,案例演示,【实例12-2】设计一个Windows应用程序,实现如图12-2所示的效果。,操作演示 详细代码 见教材,12.1.4 对象的序列化,1.对象序列化的概念 采用如实例12-2所示的方法,虽然可以将数据写入文件,也可以从文件中读出,但存在缺陷,即必须保证读写顺序相同(特别在各数据的类型不相同时)。例如,如果按学号、姓名和性别的顺序写入数据,则必须按该顺序读取数据。实际上,根据面向对象的思想,这些数据可以封装为一个整体,只要以对象或对象集为单位读写数据,

7、就可避免这一问题。为此,可采用.NET Framework的对象序列化功能来实现。 对象序列化是将对象转换为流的过程。与之相对的是反序列化,它将流转换为对象。这两个过程结合起来,就使得数据能够被轻松地以对象或对象集为单位存储和传输。,2. 对象序列化的类和实现步骤,(1)BinaryFormatter类 用来把对象的值转换为字节流,以便写入磁盘文件, 位于命名空间System.Runtime.Serialization.Formatters.Binary (2) SoapFormatter类 用来把对象的值转换为SOAP格式的数据,实现远程传输 位于命名空间System.Runtime.Ser

8、ialization.Formatters.Soap中 (3)对象序列化编程的基本步骤为 首先用Serializable属性把包含数据的类标记为可序列化的类,如果不需要序列化,则使用NonSerialized来标识 然后调用BinaryFormatter或SoapFormatter的Serialize方法实现对象的序列化。反序列化时,则调用Deserialize方法。,案例演示,【实例12-3】修改实例12-2,通过对象的序列化和反序列化实现以下功能:一、能添加学生到学生列表中,二、能将学生列表序列化再写入磁盘文件保存;三、能读取磁盘文件再反序化得学生列表、能显示学生列表信息等。 操作演示 详

9、细代码 见教材,12.2 文件操作控件,12.2.1 SaveFileDialog与OpenFileDialog控件 12.2.2 FolderBrowseDialog控件 12.2.3 应用实例:简易的写字板程序,返回,12.2.1 SaveFileDialog与OpenFileDialog控件,它们位于System.Windows.Forms命名空间中,它们分别表示 “另存为”和“打开”文件对话框,它们都是从抽象类FileDialog派生出来的,其常用属性和方法在基类FileDialog中均有定义。 表12-3列出FileDialog类的常用属性,表12-4列出FileDialog类的常用

10、方法。 SaveFileDialog控件的特殊属性: CreatePrompt:指示如果用户指定不存在的文件,对话框是否提示用户允许创建该文件 OverwritePrompt属性。指示如果用户指定的文件名已存在,“另存为”对话框是否显示警告。,案例演示,【实例12-4】设计一个Windows应用程序,通过SaveFileDialog控件,把学生数据保存到磁盘文件中,并显示成功保存的提示信息;通过OpenFileDialog控件,打开已保存的数据文件,并在列表框中显示学生数据信息,效果如图12-4所示。 操作演示 详细代码:见教材,12.2.2 FolderBrowseDialog控件,该控件位

11、于System.Windows.Forms命名空间中,是从基类CommonDialog派生出来的,其作用是提示用户浏览、创建并最终选择一个文件夹。该控件只能选择文件系统中的物理文件夹,不能选择虚拟文件夹。 常用属性有:Description、RootFolder、SelectedPath和ShowNewFolderButton等 常用方法有:Reset、ShowDialog等。 注意:该控件是模态对话框,因此在执行ShowDialog时,应用程序将暂停,直到用户单击了其中的“确定”或“取消”按钮。此时,将返回一个DialogResult型的枚举值,如果值为DialogResult.OK,则可以

12、通过SelectedPath属性获得用户所选定的文件夹,否则SelectedPath属性为空字符串。,12.2.3 应用实例:简易的写字板程序,【实例12-5】设计一个简单的MDI写字板程序,提供的功能包括:能创建新文档,也能打开和保存文件;能够设置文档的默认存盘路径;能够更改文档的格式和颜色;能够退出应用程序等。 操作演示 详细代码: 见教材,12.3 XML文档编程,12.3.1 XML概述 12.3.2 XML文档的创建 12.3.3 XML文档的查询 12.3.4 XML文档的编辑,返回,12.3.1 XML概述,XML是由W3C定义的一种可扩展的标记语言。 XML文档是由标记及其所标

13、记的内容构造成的文本文件。一个标准XML文档由两部份组成:文档头部与文档主体。 其中,头部至少包含声明语句且必须以声明语句开头。 主体是由若干个元素标记组成。整个XML文档有且仅只能有一个根元素,其他所有元素都必须包含在根元素之中。每个元素都必须有开始标记和结束标记。子元素可以包含文本内容或其他子元素,从而形成嵌套结构。当一个元素不包含文本内容或其他子元素时,可使用“/”结尾。 子元素还可以带若干属性,同一个元素的各属性的名称不能重复,属性值使用一对单引号或双引号来表示,并使用 “=”连接属性名和属性值。,12.3.2 XML文档的创建,文档对象模型DOM是W3C制定的接口规范。DOM的基本思

14、想是先把XML文档加载到内存并转换一棵树(称之为DOM树,如图12-7所示),再随机访问或修改树的节点。 在System.Xml中,DOM树称为XmlDocument类的实例(又称XML文档对象)。树的每一个节点称为XmlNode类的实例(即节点对象)。其中,文档对象指向树的根结点。 通过XmlDocument类的DocumentElement属性可返回文档的根元素。要想添加、修改、删除或查询DOM树任意节点,必须使用XmlDocument类提供的成员方法。 与创建XML文档有关的常用方法见表12-8。,案例演示,【实例12-7】设计一个Windows应用程序,以创建实例12-6所示的学生数据

15、文档,效果如图12-8所示。 操作演示 详细代码: 见教材,12.3.3 XML文档的查询,.Net Framework提供了多种XML查询技术,包括XmlTextReader、XPath、DOM和XQuery等。其中,XmlTextReader类(XML读取器)是抽象类XmlReader类的派生类,它提供了非缓存、只进只读的访问操作方式。XPath、DOM和XQuery都是由W3C制定的接口规范,其中XPath支持路径查询,XQuery以类似于SQL的操作方式对XML数据进行操作。 XPath的核心由XPathDocument、XPathNavigator和XPathExpression组成

16、。 其中,XPathDocument以只读方式缓存XML文档中的数据,以供查询使用。XPathNavigator是XPath技术的专用浏览器,提供只读和随机访问XML数据的功能。XPathExpression用来创建查询表达式,实现按路径查询。,案例演示,【实例12-8】设计一个Windows应用程序,利用XPath技术查询指定的学号的学生。,操作演示 详细代码:见教材,12.3.4 XML文档的编辑,XmlDocment类提供了大量的成员方法,用来添加、替换和删除DOM树中的指定节点,常用的方法见表12-10。 与DOM有关的还有:XmlNode和XmlNodeList类。 其中,XmlNode类的实例代表DOM树中的一个节点,XmlNodeList类的实例代表从DOM树中提取的由多个节点组成的列表。 XmlNode的常用属性有: Attributes 、ChildNodes、FirstChild、HasChildNodes 、LastChild 、NextSibling 、NodeText 、NodeType 、NodeValue 、ParentNode 、Previous

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

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

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