第八章 数据流和文件第八章数据流和文件第八章 数据流和文件第八章 数据流和文件.ppt

第八章 数据流和文件第八章数据流和文件第八章 数据流和文件第八章 数据流和文件.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C#2008程序设计基础案例教程 第八章 数据流和文件 8.1 System.IO命名空间概述 System.IO命名空间中包含了文件、目录、路径和流等操作相关的所有类。流与文件是既相关又有区别的两个概念。文件是一些具有永久存储及特定顺序的字节组成的一个有序的、具有名称的集合。相反,流提供一种向后备存储写入字节和从后备存储读取字节的方式,后备存储包括软盘、硬盘、内存、网络等。与读写文件对应的流称为文件流,除此之外也存在多种流,例如:网络流、内存流和磁带流等。 8.1.1 案例功能 在图书借阅管理系统的备忘录窗口中(见下图),使用文件流的读写存取日志。当加载窗体时,从文件Log.txt中读取日志信息显示在窗口中。用户也可以在文本框中输入并添加新的日志信息,点击“备份按钮”进行日志文件备份。 8.1.2 案例步骤 为“添加”、“删除”按钮和窗体的Load事件编写代码。 查看代码 可以看到,在代码中主要用到了FileSteam类。FileSteam(文件流)这个类主要用于在二进制文件中读写二进制数据,也可以使用它读写任何文件。 FileSteam类 要构造FileSteam实例,需要以下4条信息: 要访问的文件。 表示如何打开文件的模式。例如,创建一个新文件或打开一个现有的文件。如果打开一个现有的文件写入操作是覆盖文件原来的内容,还是添加到文件的末尾? 表示访问文件的方式——是只读、只写,还是读写? 共享访问——表示是否独占访问文件。如果允许其他流同时访问文件,则这些流是只读、只写还是读写文件? FileMode、FileAccess和FileShare枚举 构造FileSteam实例的后三个参数值分别取FileMode、FileAccess和FileShare枚举的枚举值。 流的关闭 使用完一个流后,就应关闭它,如案例中代码: fs.Close(); 关闭流会释放与它相关的资源,允许其他应用程序为同一个文件设置流。在打开和关闭流之间,可以读写其中的数据,FileStream有许多方法可以进行这样的读写。 8.1.3 案例拓展 StreamReader和StreamWriter类 这两个类专用于读写文本文件 StreamReader.ReadLine()方法:读取一行文本 StreamWriter.WriteLine() :写入一行文本,并自动换行 StreamReader类 该类只能执行读操作。一般构造时提供两个参数: 编码格式 文件名或另一个流对象 例如: StreamReader sw = new StreamReader(ReadMe.txt); StreamReader sw = new StreamReader(ReadMe.txt,Encoding.UTF8); FileStream fs = new FileStream(Log.txt, FileMode.Open, FileAccess.Read); StreamReader sr = new StreamReader(fs); Encoding枚举 命名空间:System.Text 这个类是一个抽象基类,可以根据这个类定义许多类,其方法可获取实际的文本编码。它的每个属性都返回相应类的一个实例,可以使用的属性包括: ASCII Unicode UTF7 UTF8 UTF32 BigEndianUnicode 也可通过GetEncoding方法获得指定代码页的编码。 StreamWriter类 构造方式与StreamReader类类似,它只能用于写入文件。 构造时可以使用bool类型参数指定是否以追加方式打开,例如: StreamWriter sw = new StreamWriter (ReadMe.txt,true,Encoding.ASCII); 与FileStream一样,应在使用后关闭StreamReader和StreamWriter,例如: sw.Close(); 8.1.4 案例思考 通过对备忘录功能的代码分析,我们发现在对日志文件进行读写时,做法都是先构造FileStream实例,之后将StreamReader或StreamWriter关联到这个流上。读者可以尝试修改代码,使之直接用文件名作为参数构造StreamReader或StreamWriter实例,并分析修改前后的区别。 前面提到StreamReader和StreamWriter类在构造时都可以指定编码方法。若写入文件时指定一种编码(例如ASCII),而读取文件时指定另一种编码(例如UTF8),将会产生什么状况?试分析其原因。 8.2 文件及文件夹的管理 在备忘录功能中多次用到了文件及文件夹的管理,如文件的备份,删除备份(即删除文件)、判断文件或文件夹是

您可能关注的文档

文档评论(0)

cxiongxchunj + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档