C#应用程序设计 教学课件 ppt 作者 韦鹏程 张伟 朱盈贤 第10章 文件I-O操作

上传人:E**** 文档编号:89424955 上传时间:2019-05-25 格式:PPT 页数:64 大小:1.09MB
返回 下载 相关 举报
C#应用程序设计 教学课件 ppt 作者 韦鹏程 张伟 朱盈贤 第10章 文件I-O操作_第1页
第1页 / 共64页
C#应用程序设计 教学课件 ppt 作者 韦鹏程 张伟 朱盈贤 第10章 文件I-O操作_第2页
第2页 / 共64页
C#应用程序设计 教学课件 ppt 作者 韦鹏程 张伟 朱盈贤 第10章 文件I-O操作_第3页
第3页 / 共64页
C#应用程序设计 教学课件 ppt 作者 韦鹏程 张伟 朱盈贤 第10章 文件I-O操作_第4页
第4页 / 共64页
C#应用程序设计 教学课件 ppt 作者 韦鹏程 张伟 朱盈贤 第10章 文件I-O操作_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《C#应用程序设计 教学课件 ppt 作者 韦鹏程 张伟 朱盈贤 第10章 文件I-O操作》由会员分享,可在线阅读,更多相关《C#应用程序设计 教学课件 ppt 作者 韦鹏程 张伟 朱盈贤 第10章 文件I-O操作(64页珍藏版)》请在金锄头文库上搜索。

1、C# 程序设计,第10章 文件IO操作,目 录,第10章 文件IO操作,本章介绍文件与流的概念,文件流的使用方法等。,10.1 文件与流,C#将文件视为一个字节序列,以流的方式对文件进行操作。流式字节序列的抽象概念,文件、输入输出设备、内部进程通信管道以及TCP/IP套接字等都可以被视为一个流。 文件和流之间既有区别又有联系。文件是在各种驱动器上(硬盘、可移动磁盘等)永久或临时存储的数据的有序集合,是进行数据读写操作的基本对象;文件通常具有文件名、路径、访问权限等属性。 而流从概念上来说非常类似于单独的磁盘文件,同时也是进行数据读取操作的对象。流提供了连续的字节存储空间,通过流可以向后备存储器

2、写入数据,也可以从后背存储器中读取数据。和磁盘文件直接相关的流称为“文件流”,除文件流之外还存在网络流、内存流等其他类型的流。,10.1 文件与流,10.1.1 FileStream 10.1.2 文件的追加与随机访问,10.1.1 FileStream,所有表示流的类都是从Stream类继承的,Stream类是所有流的抽象基类。FileStream类继承于Stream类,主要用于二进制文件的输入与输出。,10.1.1 FileStream,任务10.1文件的写入与读出 利用FileStream流类的实例,将文本框总写入的ASCII码值,以字节的形式保存在文件中。然后以流方式打开该文件,将AS

3、CII码值转换为对应的ASCII字符显示出来,运行结果如图10-1所示。,10.1.1 FileStream,任务10.1 任务实施 (一)创建项目和窗体 (1)创建一个“Windows应用程序”项目。 (2)向窗体上添加两个标签框,三个命令按钮,一个文本框,界面布局如图10-2所示,控件属性参数如表10-1所示。,10.1.1 FileStream,任务10.1 任务实施 (一)创建项目和窗体,10.1.1 FileStream,任务10.1 任务实施 (一)创建项目和窗体,10.1.1 FileStream,任务10.1 任务实施 (二)代码的编写 (1)在Form1类定义的类体中添加如下

4、引用: using System.IO; (2)双击【保存文件】按钮,为其添加Click事件代码 (3)双击【打开文件】按钮,为其添加Click事件代码,10.1.1 FileStream,任务10.1 任务实施 (二)代码的编写 (4)双击【清空】按钮,为其添加Click事件代码如下: private void button3_Click(object sender, EventArgs e) label1.Text = “; textBox1.Text = “; ,10.1.1 FileStream,任务10.1 任务实施 (三)程序的运行 按下F5键运行该应用程序,在文本框中输入ASCI

5、I码值,以“,”分隔,要保存成字节文件时,单击【保存文件】按钮。要打开文件读取内容时,单击【打开文件】按钮,在标签框中会将保存的字节数据以字符形式显示。单击【清空】按钮,清空标签框和文本框内容。运行结果如图10-1所示。,10.1.1 FileStream,任务10.1 支撑知识 (一)文件流FileStream 文件流FileStream支持同步和异步文件读写,它还可以使用输入输出缓存以提高性能。 (1)流的创建 FileStream类提供了14个构造函数,支持一多种方式来构造FileStream对象,并在构造时指定文件流的多个属性。 本任务中使用的构造函数是一个包含三个参数的构造函数,其一

6、般格式为: FileStream(string path,FileMode mode,FileAccess access);,10.1.1 FileStream,任务10.1 支撑知识 (一)文件流FileStream (2)将数据写入流 要将内存中的数据写入文件流,需要调用文件流的Write方法,其一般格式为: Write(byte array,int offset,int count); 其中参数: array:要写入文件流的字节数组。 offset:array数组中开始写入文件流中的位置的字节的偏移量(下标)。 count:将要写入流的最大字节数。 如果写操作成功,则流的当前位置前进写入

7、的字节数,如果发生异常,则流的当前位置不变。,10.1.1 FileStream,任务10.1 支撑知识 (一)文件流FileStream (3)从流中读取数据 FileStream.ReadByte方法从流中读取一个字节(返回为转换为int的字节),并将流内的位置(指向流当前操作位置的指针)向前推进一个字节,如果已达流的末尾,则返回-1。,10.1.1 FileStream,任务10.1 支撑知识 (一)文件流FileStream (4)关闭文件流 如果程序不再需要使用某个文件了,最好在程序中显式地关闭它,使用FileStream.Close方法关闭文件并释放与当前文件流关联的任何资源。,1

8、0.1.1 FileStream,任务10.1 支撑知识 (一)文件流FileStream (4)关闭文件流 FileStream类的常用属性如表10-2所示。,10.1.1 FileStream,任务10.1 支撑知识 (一)文件流FileStream (4)关闭文件流 FileStream类的常用方法如表10-3所示。,10.1.1 FileStream,任务10.1 支撑知识 (二)与IO操作相关的枚举 在IO操作中常用到的枚举类型有: (1)FileAccess FileAccess表示对文件的访问权限,枚举取值包括: Read:对文件拥有读权限; ReadWrite:对文件同时拥有读

9、写权限; Write:对文件拥有写权限。,10.1.1 FileStream,任务10.1 支撑知识 (二)与IO操作相关的枚举 (2)FileAttribute FileAttribute表示文件的类型,枚举取值包括: Archive:存档文件; Compressed:压缩文件; Device:设备文件; Directory:目录; Encrypted:加密文件; Hidden:隐藏文件; Normal:普通文件;,10.1.1 FileStream,任务10.1 支撑知识 (二)与IO操作相关的枚举 (2)FileAttribute FileAttribute表示文件的类型,枚举取值包括:

10、 NotContentIndexed:无索引文件; Offline:脱机文件; ReadOnly:只读文件; ReparePoint:重分析文件; SparseFile:稀疏文件; System:系统文件; Temporary:临时文件。,10.1.1 FileStream,任务10.1 支撑知识 (二)与IO操作相关的枚举 (3)FileMode FileMode表示文件的打开方式,枚举取值包括: Append:以追加方式打开文件,如果文件存在文件指针则到达文件末尾,陆续追加内容到文件,否则创建一个新文件; Create:创建并打开一个新文件,如果文件已经存在则覆盖旧文件; CreateNe

11、w:创建并打开一个新文件,如果文件已经存在则发生异常;,10.1.1 FileStream,任务10.1 支撑知识 (二)与IO操作相关的枚举 (3)FileMode FileMode表示文件的打开方式,枚举取值包括: Open:打开现有文件,如果文件不存在则发生异常; OpenOrCreate:打开或新建一个文件,如果文件已经存在则打开它,否则创建并打开一个新文件; Truncate:打开现有文件,并清空文件内容。,10.1.1 FileStream,任务10.1 支撑知识 (二)与IO操作相关的枚举 (4)FileShare FileShare表示文件的共享方式,枚举取值包括: None:

12、禁止任何形式的共享; Read:读共享,打开文件后允许其他进程对文件进行读操作; ReadWrite:读写共享,打开文件后允许其他进程对文件进行读和写操作; Write:写共享,打开文件后允许其他进程对文件进行写操作。,10.1.1 FileStream,任务10.1 支撑知识 (二)与IO操作相关的枚举 (5)SeekOrigin SeekOrgin表示以什么为基准来计算文件流中的偏移量,枚举取值包括: Begin:从文件流的起始位置计; Current:从文件流的当前位置计; End:从文件流的结束位置计。,10.1.1 FileStream,任务10.1 支撑知识 (三)File类 使用

13、File类提供的文件管理功能,不仅可以创建、复制、移动和删除文件,还可以打开文件,以及获取和设置文件的有关信息。File类同时也是创建流对象的基本要素。,10.1.1 FileStream,任务10.1 支撑知识 (三)File类 File类的常用共有静态方法如表10-4所示。,10.1.1 FileStream,任务10.1 支撑知识 (三)File类 File类的常用共有静态方法如表10-4所示。,10.1.1 FileStream,任务10.1 支撑知识 (四)字符串的分割 任务中将文本框内的字符串分割成多个字符串数组,用到的方法是String类中的Split方法,该方法返回包含此实例中

14、的子字符串(由指定 Char 或 String 数组的元素分隔)的 String 数组。 该方法的有很多重载方法,本例中用到的一个参数的重载,一般格式如下: String.Split (Char),10.1.2 文件的追加与随机访问,以FileMode.Create的方式打开的文件流,文件的流指针默认是位于流的第一个字节上,这样如果打开的文件是已经存在的,那么再向其中写入数据,就会将原有文件覆盖掉,要保留已经存在的数据,对文件就必须以“追加”的方式打开。 同样,由于默认打开的文件流,其流指针默认位于第一个字节上,所以前面的读文件操都是从文件的最开始字节开始读取,实际上,很多流都支持Seek方法

15、,该方法可以让我们随意读取流中的字节。,10.1.2 文件的追加与随机访问,任务10.2 追加数据与随机访问 在任务10.1中,程序运行后,单击【保存文件】就会创建一个名为“test1.dat”的文件来保存数据,再一次单击【保存文件】时,新的数据会将原来文件中的数据覆盖,现在修改成“追加”模式。并且需要能够随机访问文件中的字节信息,修改后的程序运结果如图10-3所示。,10.1.2 文件的追加与随机访问,任务10.2 追加数据与随机访问,10.1.2 文件的追加与随机访问,任务10.2 任务实施 (一)创建项目和窗体 将任务10.1中的【清空】按钮的Text属性值,改为“末尾3字节”,即单击该

16、按钮,显示文件中最后3个字节的数据。,10.1.2 文件的追加与随机访问,任务10.2 任务实施 (二)代码的编写 对任务10.1中的代码,要修改的地方如下: (1)【保存文件】按钮的Click事件代码,改动的部分用阴影部分显示: (2)【末尾3字节】按钮的Click事件代码,10.1.2 文件的追加与随机访问,任务10.2 任务实施 (三)程序的运行 按下F5键运行该应用程序,在文本框中输入新的ASCII字符的数值,单击【保存文件】按钮,会将新的数据追加到已经创建的test1.dat的尾部;单击【打开文件】按钮,将test1.dat文件中的数据都以ASCII码字符的形式显示在标签框中;单击【末尾3字节】按钮,将test1.dat中的最后3个字节的数据以ASCIl码字符形式显示在标签框中。运行结果如图10-3所示。,10.1.2 文件的追加与随机访问,任务10.2 支撑知识 (一)Seek方法定位 FileStream.Seek方法允许把读/写位置移动到文件内的任何位置,因此,当我们打开

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

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

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