面向对象程序设计(C#)-电子教案-李法平 第7章

上传人:E**** 文档编号:89434444 上传时间:2019-05-25 格式:PPT 页数:27 大小:1.24MB
返回 下载 相关 举报
面向对象程序设计(C#)-电子教案-李法平 第7章_第1页
第1页 / 共27页
面向对象程序设计(C#)-电子教案-李法平 第7章_第2页
第2页 / 共27页
面向对象程序设计(C#)-电子教案-李法平 第7章_第3页
第3页 / 共27页
面向对象程序设计(C#)-电子教案-李法平 第7章_第4页
第4页 / 共27页
面向对象程序设计(C#)-电子教案-李法平 第7章_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《面向对象程序设计(C#)-电子教案-李法平 第7章》由会员分享,可在线阅读,更多相关《面向对象程序设计(C#)-电子教案-李法平 第7章(27页珍藏版)》请在金锄头文库上搜索。

1、,面向对象程序设计(C#),第7章 文件操作,212,目 录,任务7.1 创建文本文件操作类,任务7.2 创建二进制文件操作类,任务7.3 创建windows文件及文件操作类,312,任务7.1 创建文本文件操作类,2,1,知识目标,能力目标,输入流 输出流,操作文本文件,412,7.1.1情境描述,Jack前期成功的实现了商品的信息在内存中的存储及操作,但是,内存中的数据不能持久保存,为了实现商品数据的持久保存,他需要将数据存储到硬盘及从硬盘中读取数据,为此,他需要完成以下任务: 1)创建输入流 2)创建输出流,第1章目录,数据在内存中只是临时存储,只有将数据写入到磁盘才能实现数据的永久保存

2、。将数据写入磁盘中的方法有多种,在C#中,可以利用流技术实现。因为商品信息只是一些简单的文本信息,因此可以采用StreamReader及StreamWriter字符流的方式实现文件的操作,第1章目录,7.1.2问题分析,1、利用Visual Studio 2010打开任务7.2。 2、打开前期创建在FileOperation目录下的GoodsOperation类,在其中引入System.IO名称空间。 3、在FileOperation.GoodsOperation下创建MemoryOperation.GoodsOperation类的对象,并在构造方法中依次将数据读取内存中 4、针对GoodsO

3、peration类,完成Operation.IGoodsOperation操作接口方法对文件追加操作 5、完成将内存数据覆盖写入到文件中的WriteFile方法 6、修改BLL下的GoodsBLL中的构造Operation.IGoodsOperation接口,代码如下 7、运行、调成程序。,第1章目录,7.1.3解决方案,7.1.4知识总结,流提供一种向后备存储写入字节和从后备存储读取字节的方式。两个基本流操作是用于读操作的输入流和用于写操作的输出流。 1、 Sytem.IO命名空间常用类 Sytem.IO命名空间中包含文件创建、文件删除和文件读写操作的各种类,其中常用的类如下:,第1章目录,

4、812,7.1.4知识总结,2、FileStream类 通过使用FileStream类来读取、写入和关闭文件。创建FileStream类的对象的语法规则如下: FileStream 流对象名=new FileStream(String , FileMode, FileAccess, FileShare) (1)其中参数1“String” 指出来FileStream用于读取或写入的文件名及位置; (2)参数2“FileMode”是个枚举,定义打开文件的各种方法,成员如下表 (3)参数3“FileAccess“是个枚举,定义用于控制对文件的读访问、写访问或读/写访问的常数 (4)参数4“FileS

5、hare”包含用于控制其他 FileStream 对象对同一文件可以具有的访问类型的常数。,第1章目录,912,7.1.4知识总结,3、StreamReader类 StreamReader类以一种特定的编码从字节流中读取字符,StreamReader的方法如下表所示。 4、StreamWriter类 StreamWriter类 旨在以一种特定的编码输出字符,而从 Stream 派生的类则用于字节的输入和输出。StreamWriter的方法如下表所示.,第1章目录,1012,7.1.4知识总结,2、异常的种类 在C#中,所有异常的的基类都是System.Exception类,所有的异常都是从此类

6、派生的。当错误发生时,当前运行的程序通过引发包含关于该错误的信息的异常来报告错误。异常发生后,将由该应用程序或默认异常处理程序进行处理。 System.Exception异常类包含两种类型的异常,分别为System.SystemException和System.ApplicationException。 (1)System.SystemException是所有系统预定义的异常的基类。下表描述了派生自系统预定义的异常。 (2)System.ApplicationException类是由用户程序发送的,也就是由用户自定义的异常类。,第1章目录,1112,7.1.4知识总结,3、异常处理 C# 语言

7、的异常处理功能提供了处理程序运行时出现的任何意外或异常情况的方法。异常处理使用 try、catch 和 finally 关键字来尝试可能未成功的操作,处理失败,以及在事后清理资源。 把会产生异常的代码用try模块括起来,产生或抛出异常时,在catch块中进行处理。如果try语句后面的代码发生了异常,系统将会捕获这个异常,并转到catch语句后面的的代码来处理此异常。 异常出现时可以使用throw语句抛出。Throw语句中包括throw关键字及其后面抛出异常的表达式。运算该表达式时抛出异常类的实例对象异常。 Finally块 Catch块包含的代码是异常发生的时候就会运行,而finally块包含

8、的代码是不管异常是否发生或者是否找到与异常类型匹配的catch块,finally块始终会执行。所以我们可以使用finally块释放资源,例如关闭文件、关闭与数据库的连接等。,第1章目录,1212,7.1.5应用实践,通过键盘输入学生的信息,并储存到文本文件中,代码如下所示:,第1章目录,1312,任务7.2 创建二进制文件操作类,2,1,知识目标,能力目标,二进制文件读 二进制文件写,利用二进制操作文件,1412,7.2.1情境描述,任务7.2案例中,成功利用StreamReader和StreamWriter实现了文本文件的存储,然而,在存储的数据格式中,增加了“:”用于区分不同商品数据之间的

9、格式,采取二进制形式的存储,可以有效的实现数据对象的存储,避免设置特定数据格式给程,现在针对收银员信息持久化进行存储,需要实现以下任务: 1)二进制输入流 2)二进制输出流,第1章目录,1512,7.2.2问题分析,数据在内存中只是临时存储,只有将数据写入到磁盘才能实现数据的永久保存。将数据写入磁盘中的方法有多重,在C#中,可以利用流技术实现。因为收银员信息只是一些简单的文本信息,因此可以采用BinaryReader及BinaryWriter字符流的方式实现文件的操作。,第1章目录,1612,7.2.3解决方案,1)、打开Visual Studio2010 ,在任务7.1的基础上进行项目编写操

10、作: 2)在Operation文件夹下创建ICashierOperation接口,并定义收银员操作方法 3)、在FileOperation文件夹中新建正对收银员信息存储的二进制文件操作类CashierOperation类,并实现ICashierOperation接口。 4)在CashierOperation类中引入IO名称空间,写法:using System.IO; 5)在CahierOperation类中添加追加写入及覆盖写入收银员信息方法。,第1章目录,1712,7.2.4知识总结,BinaryReader类和BinaryWriter类用于读写二进制数据到文件中. 1、BinaryWrit

11、er类 BinaryWriter类以二进制形式将基元类型写入流,并支持用特定的编码写入字符串。下表描述了BinaryWriter类的常见的方法。,第1章目录,1812,7.2.4 知识总结,2、BinaryReader类 BinaryReader类用于从文件读取二进制数据。下表描述了BinaryReader类的常见的方法。,第1章目录,1912,7.2.5应用实践,在运动商场中,收银结算的信息相当重要,利用二进制数据持久,实现收银结算数据的持久操作及数据查询,第1章目录,2012,任务7.3 创建windows文件及文件操作类,2,1,知识目标,能力目标,File类 Dictionary类,操

12、作windows文件及文件夹,2112,7.3.1情境描述,当文件持久之后,针对文件的备份就非常重要,数据备可以避免数据丢失情况,在运动商场文件操作中,如要完成商品信息、收银员信息及销售信息的持久数据的类似备份,需要完成以下任务: 1)利用File类操作文件 2)利用Directory的操作文件夹,第1章目录,2212,7.3.2问题分析,有时候需要操作磁盘中的文件。在C#中,可以利用File类和Directory类来实现文件夹及文件的操作。,第1章目录,2312,7.3.3解决方案,有时候需要操作磁盘中的文件。在C#中,可以利用File类和Directory类来实现文件夹及文件的操作。,第1

13、章目录,2412,7.3.4知识总结,文件是一些具有永久存储及特定顺序的字节组成的一个有序的、具有名称的集合。可以使用DirectoryInfo类和FileInfo类相结合来使用文件和目录。 1、DirectoryInfo类 DirectoryInfo 类用于创建、移动和枚举目录和子目录的实例方法。下表描述了DirectoryInfo 类的常用属性和方法。 2、FileInfo类 FileInfo类提供创建、复制、删除、移动和打开文件的实例方法,并且帮助创建 FileStream 对象。下表描述了FileInfo类的常用属性和方法。,第1章目录,2512,7.3.5应用实践,1)独立实践:根据

14、所学知识,练习创建一个目录“Dire“,在此目录中创建几个文件,然后从读取此文件夹中的文件信息。 2)实现运动商场收银结算信息查询与信息统计功能,针对交易结算信息查询,可以采取按照商品名称查询;而交易统计可以按照商品统计出某种商品的销售额。,第1章目录,2612,7.4 任务小结,理解输入与输出流的概念 FileStream类、StreamReader类和StreamWriter类的用法 对文本文件进行读写操作 BinaryWriter和BinaryReader的用法 能够读写二进制文件 FileInfo类和DirectoryInfo类的用法 能够操作文件夹中的文件,第1章目录,2750,7.5 练习作业,文件和流的区别是什么。 请解释下段代码运行结果。 创建一个书籍管理系统,包括书籍的代码,书名,作者,出版社,价格信息,要求有以下功能 (1)添加书籍信息 (2)查询书籍信息 (3)退出系统 在4题中的书籍管理系统添加功能:删除书籍信息.,第1章目录,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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