清华大学原版C学习资料第十章文件操作和输入输出流

上传人:仙*** 文档编号:42884662 上传时间:2021-11-28 格式:PPT 页数:16 大小:489.50KB
收藏 版权申诉 举报 下载
清华大学原版C学习资料第十章文件操作和输入输出流_第1页
第1页 / 共16页
清华大学原版C学习资料第十章文件操作和输入输出流_第2页
第2页 / 共16页
清华大学原版C学习资料第十章文件操作和输入输出流_第3页
第3页 / 共16页
资源描述:

《清华大学原版C学习资料第十章文件操作和输入输出流》由会员分享,可在线阅读,更多相关《清华大学原版C学习资料第十章文件操作和输入输出流(16页珍藏版)》请在装配图网上搜索。

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

2、时间、访问权限等属性。q 流 流提供了连续的字节流存储空间,虽然数据实际存储的位置可能不连续,甚至可以分布在多个磁盘上,但我们看到的是封装以后的数据结构,是连续的字节流抽象结构。 除了和磁盘文件直接相关的文件流以外,流有多种类型,流可以分布在网络中,内存中或者是磁带中。IO 命名空间和它类qIO 命名空间包含便于在数据流和文件中读取和写入数据的类qIO 命名空间中用于文件目录操作类类类 名名说说 明明File提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建 FileStream。FileInfo 类提供实例方法。Directory提供通过目录和子目录进行创建、移动和枚举的静态方法

3、。DirectoryInfo类提供实例方法FileInfo提供用于创建、复制、删除、移动和打开文件的实例方法,并协助创建 FileStream。File 类提供静态方法。DirectoryInfo提供通过目录和子目录进行创建、移动和枚举的实例方法。Directory 类提供静态方法。FileSystemInfoFileInfo和DirectoryInfo的抽象基类。Path提供以跨平台的方式处理目录字符串的方法和属性。DriveInfo提供访问有关驱动器的信息的实例方法。FileStream支持通过其Seek方法随机访问文件。默认情况下,FileStream 以同步方式打开文件,但它也支持异步

4、操作。File 包含静态方法,而FileInfo包含实例方法。DeflateStream提供使用Deflate算法压缩和解压缩流的方法和属性。GZipStream提供压缩和解压缩流的方法和属性。默认情况下,此类使用与DeflateStream 类相同的算法,但可以扩展到使用其他压缩格式。流I/O操作类类类 名名说说 明明BinaryReader从Streams读取编码的字符串和基元数据类型。BinaryWriter或向Streams写入编码的字符串和基元数据类型。StreamReader通过使用Encoding进行字符和字节的转换,从Streams中读取字符。StreamReader具有一个构

5、造函数,该构造函数根据是否存在专用于Encoding的preamble(例如一个字节顺序标记)来确定给定Stream的正确Encoding是什么。StreamWriter通过使用Encoding将字符转换为字节,向Streams写入字符。StringReader从Strings中读取字符。StringReader允许您用相同的API来处理Strings,因此您的输出可以是String或以任何编码表示的Stream。StringWriter向Strings写入字符。StringWriter允许您用相同的API来处理Strings,因此您的输出可以是String或以任何编码表示的Stream。Te

6、xtReaderStreamReader和StringReader的抽象基类。抽象Stream类的实现用于字节输入和输出,而TextReader的实现用于Unicode字符输出。TextWriterStreamWriter和StringWriter的抽象基类。抽象Stream类的实现用于字节输入和输出,而TextWriter的实现用于Unicode字符输出。其他I/O流类类类 名名说说 明明BufferedStream向另一个 Stream(例如 NetworkStream)添加缓冲的 Stream。(FileStream内部已具有缓冲,MemoryStream 不需要缓冲。)Buffered

7、Stream 可以围绕某些类型的流来构成以提高读写性能。缓区是内存中的字节块,用于缓存数据,从而减少对操作系统的调用次数。MemoryStream一个非缓冲的流,可以在内存中直接访问它的封装数据。该流没有后备存储,可用作临时缓冲区。NetworkStream表示网络连接上的 Stream。虽然 NetworkStream 是从 Stream 派生的,但它不属于 System.IO 命名空间,而是在 System.NET.Sockets 命名空间中。目录管理System.IO命名空间下提供了三种操作目录的类:q Directory 静态类提供通过目录和子目录进行创建、移动和删除等静态方法。q D

8、irectoryInfo 提供通过目录和子目录进行创建、移动和删除等实例方法。q Path 静态类的成员使您可以快速方便地对文件或目录路径信息的String实例,执行常见静态操作方法。例如:确定文件扩展名是否是路径的一部分,以及将两个字符串组合成一个路径名。q 示例参见教材例10.1、10.2q Path示例参见教材例10.3递归算法 如何获得某个盘符或者路径下的所有目录和子目录的信息呢? 循环?递归 能采用递归描述的算法通常有这样的特征:能采用递归描述的算法通常有这样的特征:为求解规模为N的问题,设法将它分解成规模较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题

9、也能采用同样的分解和综合方法,分解成规模更小的问题,并从这些更小问题的解构造出规模较大问题的解。特别地,当规模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 (D

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

11、ete、GetLastAccessTime 等,利用它们可以完成一些基本的文件管理。q也可以通过FileInfo类来实现同样的操作。q示例参照教材例10.5、10.6文本模式文件数据读写文本模式文件数据读写 qStreamReader和StreamWriter类提供以一种特定的编码从字节流中读取字符。 注意字符编码问题 示例参见教材例10.7文件流获得 通过File类中的Open、OpenRead、OpenWrite获得FileStream文件流。 通过AppendText可获得UTF-8编码格式的StreamReader类对象。 二进制模式文件数据读写二进制模式文件数据读写 q Binary

12、Reader 和BinaryWriter 类,用于按二进制模式读写文件。q 它们提供的一些读写方法是对称的,比如针对不同的数据结构,BinaryReader提供了ReadByte、ReadBoolean、ReadInt、ReadInt16、ReadDouble、ReadString等方法,而BinaryWriter 则提供了重载了17次的Write 方法。 q BinaryReader读取数据所用方法必须和BinaryWriter写入数据所用方法对应。q 示例参见教材例 10.8总结qIO框架结构q对目录和文件的创建、读、写和更新操作qFile和Directory静态类的使用qFileInfo和DirectoryInfo的实例对象的应用q字节流和字符流的处理q目录管理q文件管理

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!