基于c#的windows程序设计 第11章

上传人:第*** 文档编号:54410085 上传时间:2018-09-12 格式:PPT 页数:17 大小:353.50KB
返回 下载 相关 举报
基于c#的windows程序设计 第11章_第1页
第1页 / 共17页
基于c#的windows程序设计 第11章_第2页
第2页 / 共17页
基于c#的windows程序设计 第11章_第3页
第3页 / 共17页
基于c#的windows程序设计 第11章_第4页
第4页 / 共17页
基于c#的windows程序设计 第11章_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《基于c#的windows程序设计 第11章》由会员分享,可在线阅读,更多相关《基于c#的windows程序设计 第11章(17页珍藏版)》请在金锄头文库上搜索。

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“;tryif (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(“T

5、he number 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 改变为DirectoryInfopublic static void dispDirs(DirectoryInfo dir)Console.WriteLine(“0“, dir.FullName); /返回目录中的目录列表对象DirectoryInfo directories = dir.GetDirectories();foreach (DirectoryInfo dirX in

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

8、等,利用它们可以完成一些基本的文件管理。 也可以通过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读取数据所用方法必须和BinaryWriter写入数据所用方法对应。示例参见教材例 10.8,总结,IO框架结构 对目录和文件的创建、读、写和更新操作 File和Directory静态类的使用 FileInfo和DirectoryInfo的实例对象的应用 字节流和字符流的处理 目录管理 文件管理,

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

当前位置:首页 > 建筑/环境 > 工程造价

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