基于C#的Windows程序设计 第11章.ppt_第1页
基于C#的Windows程序设计 第11章.ppt_第2页
基于C#的Windows程序设计 第11章.ppt_第3页
基于C#的Windows程序设计 第11章.ppt_第4页
基于C#的Windows程序设计 第11章.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第十一章,文件操作和输入输出流,目标,IO框架结构 对目录和文件的创建、读、写和更新操作 File和Directory静态类的使用 FileInfo和DirectoryInfo的实例对象的应用 字节流和字符流的处理 目录管理 文件管理,体验,程序运行后,在c盘下生成一个text.txt文件。程序向该文件中输入10000行的记录。记录输入完成后,程序把文件的所有记录显示在控制台上。,文件和流,文件 文件是一些具有永久存储及特定顺序的字节组成的一个有序的、具有名称的集合。 在各种介质上(可移动磁盘、硬盘、CD 等)存储的集合数据。 通常情况下文件按照树状目录进行组织,每个文件都有文件名、文件所在路

2、径、创建时间、访问权限等属性。 流 流提供了连续的字节流存储空间,虽然数据实际存储的位置可能不连续,甚至可以分布在多个磁盘上,但我们看到的是封装以后的数据结构,是连续的字节流抽象结构。 除了和磁盘文件直接相关的文件流以外,流有多种类型,流可以分布在网络中,内存中或者是磁带中。,IO 命名空间和它类,IO 命名空间包含便于在数据流和文件中读取和写入数据的类 IO 命名空间中用于文件目录操作类,流I/O操作类,其他I/O流类,目录管理,System.IO命名空间下提供了三种操作目录的类: Directory 静态类提供通过目录和子目录进行创建、移动和删除等静态方法。 DirectoryInfo 提

3、供通过目录和子目录进行创建、移动和删除等实例方法。 Path 静态类的成员使您可以快速方便地对文件或目录路径信息的String实例,执行常见静态操作方法。例如:确定文件扩展名是否是路径的一部分,以及将两个字符串组合成一个路径名。 示例参见教材例10.1、10.2 Path示例参见教材例10.3,string path = c:MyDir; string target = c:TestDir; try if (Directory.Exists(target) Directory.Delete(target, true); Console.WriteLine(Path:0 is deleted.,

4、 path); if (!Directory.Exists(path) Directory.CreateDirectory(path); Console.WriteLine(Path:0 is created now., path); else Console.WriteLine(Path:0 is exist.,path); Directory.Move(path, target); Directory.CreateDirectory(target + subdir); File.CreateText(target + myfile.txt); Console.WriteLine(The n

5、umber of files in 0 is 1, target, Directory.GetFiles(target).Length); catch (Exception e) Console.WriteLine(The process failed: 0, e.ToString(); finally ,递归算法,如何获得某个盘符或者路径下的所有目录和子目录的信息呢?,循环?,递归,能采用递归描述的算法通常有这样的特征: 为求解规模为N的问题,设法将它分解成规模较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的分解和综合方法,分解成规模更小的问题,并

6、从这些更小问题的解构造出规模较大问题的解。特别地,当规模N=1时,能直接得解。,递归示例,using System; using System.IO; public class Files /将string 改变为DirectoryInfo public static void dispDirs(DirectoryInfo dir) Console.WriteLine(0, dir.FullName); /返回目录中的目录列表对象 DirectoryInfo directories = dir.GetDirectories(); foreach (DirectoryInfo dirX in d

7、irectories) dispDirs(dirX); ,public static void Main() /保存目录存在 DirectoryInfo dir = new DirectoryInfo(D:TOOLS); if (dir.Exists) dispDirs(dir); else Console.WriteLine(访问目录不存在!); Console.Read(); ,文件管理,File类通常和FileStream类协作来完成对文件的创建、删除、拷贝、移动、打开等操作。 File类提供的静态方法主要有Create、Copy、Move、Delete、GetLastAccessTim

8、e 等,利用它们可以完成一些基本的文件管理。 也可以通过FileInfo类来实现同样的操作。 示例参照教材例10.5、10.6,文本模式文件数据读写,StreamReader和StreamWriter类提供以一种特定的编码从字节流中读取字符。 注意字符编码问题 示例参见教材例10.7,文件流获得,通过File类中的Open、OpenRead、OpenWrite获得FileStream文件流。 通过AppendText可获得UTF-8编码格式的StreamReader类对象。,二进制模式文件数据读写,BinaryReader 和BinaryWriter 类,用于按二进制模式读写文件。 它们提供的一些读写方法是对称的,比如针对不同的数据结构,BinaryReader提供了ReadByte、ReadBoolean、ReadInt、ReadInt16、ReadDouble、ReadString等方法,而BinaryWriter 则提供了重载了17次的Write 方法。 BinaryReader读取数据所用方法必须和Binar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论