




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章文件操作 文件操作是一个操作系统重要的组成部分之一 也是一个应用程序所必须具备的功能 一个完整的应用程序 必须具有系统和用户信息交换的功能 而有效的文件操作 是实现信息交换的手段之一 C 提供了强大的文件操作的功能 使用这些功能 可以很方便地实现文件的存储管理 对文件的读写操作等 6 1文件和文件夹 文件与前文介绍的数组等变量不同 变量中的数据只是在程序运行时存在 随着程序的终结变量的内容也随之丢失 而文件中的内容可以永久地存储数据到硬盘或其他设备上 这就是通常所说的持久性数据 文件的这种特性可以使我们方便地存储应用程序配置等数据 以便在程序下一次运行时使用 NET对文件的操作提供了方便的工具 本章的代码实例中如无特殊说明 将会包含以下引用 1 usingSystem 2 usingSystem IO 6 1 1System IO类介绍 System IO类包含了所有本章所要介绍的输入输出类 下面先对System IO类进行一个简要的介绍 使读者有一个简单的了解 表6 1所示为System IO包含的所有类及其功能 System IO命名空间下的类提供了非常强大的功能 对这些类熟练地掌握可以使我们编写出功能十分强大的代码 但对于初学者来说 常用的类有File Directory Path FileInfo DirectoryInfo FileStream StreamReader StreamWriter及FileSystemWatcher等 这些类的功能可以满足一般应用程序的需求 下面的章节中 将对这些常用类进行逐一介绍 6 1 2文件类 文件类 File 是最重要和最基础的一个类 File类提供了大量的公开方法 有42种之多 其中大部分方法为静态方法 File类提供了用于创建 复制 删除 移动和打开文件的静态方法 并协助创建FileStream对象 6 1 3文件夹类 读者对Windows的文件管理方式应该并不陌生 其采用的是一种树形管理模式 文件的上层通常还存在若干层文件夹 本小节将要向读者介绍C 中文件夹类Directory的知识 Directory类同File类相似 公开了用于创建 移动目录和子目录等静态方法 方法非常多 此处介绍一些常用方法 6 1 4文件信息类 文件信息类 FileInfo 与File类不同 它虽然也提供了创建 复制 删除 移动和打开文件的方法 并且帮助创建FileStream对象 但是它提供的仅仅是实例方法 因此要使用FileInfo类 必须先实例化一个FileInfo对象 FileInfo类的常用方法与File类基本相同 此处仅介绍FileInfo类的常用属性 6 1 5文件夹信息类 文件夹信息类 DirectoryInfo 与文件信息类 FileInfo 相似 它是一个实例类 同样提供了Directory类中的大部分方法 同FileInfo类一样 使用DirectoryInfo类之前必须实例化一个DirectoryInfo对象 DirectoryInfo类拥有和FileInfo类几乎相同的属性 6 1 6文件信息类与文件夹信息类的用法 文件信息类 FileInfo 和文件夹信息类 DirectoryInfo 具有文件类 File 和文件夹类 Directory 的大部分功能 读者在实际应用中应当注意选择使用不同的实现 1 File类和Directory类适合用于在对象上单一的方法调用 此种情况下静态方法的调用在速度上效率比较高 因为此种方法省去了实例化新对象的过程 2 FileInfo类和DirectoryInfo类适合用于对同一文件或文件夹进行几种操作的情况 此种情况下 实例化的对象不需每次都寻找文件 只需调用该实例化的方法 比较节省时间 6 2流 流是 NET操作文件的基本类 NET中对文件的输入输出操作都要用到流 流分为输入流和输出流 通常 输入流用于读取数据 最常见的输入流莫过于键盘了 此前应用的大部分输入都是来源于键盘 其实输入流可以来源于很多设备 本章所主要讨论的输入流形式是磁盘文件 输出流则用于向外部目标写数据 本章所讨论氖涑隽餍问揭步鱿抻诖排涛募 6 2 1流操作类介绍 NETFramework中提供了5种常见的流操作类 用以提供文件的读取 写入等常见操作 该操作类的简单说明如表类说明BinaryReader用特定的编码将基元数据类型读作二进制值BinaryWriter以二进制形式将基元类型写入流 并支持用特定的编码写入字符串FileStream公开以文件为主的Stream 既支持同步读写操作 也支持异步读写操作StreamReader实现一个TextReader 使其以一种特定的编码从字节流中读取字符StreamWriter实现一个TextWriter 使其以一种特定的编码向流中写入字符 6 2 2文件流类 FileStream 文件流类 FileStream 公开了以文件为主的Stream 既支持同步读写操作 也支持异步读写操作 FileStream类的特点是操作字节和字节数组 这种方式不适合以字符数据构成的文本文件等类似文件的操作 但对随机文件操作等比较有效 FileStream类提供了对文件的低级而复杂的操作 但却可以实现更多高级的功能 FileStream类的构造函数有15种 此处仅对两种作简要介绍 6 2 3流写入类 应用FileStream类需要许多额外的数据类型转换操作 十分影响效率 本小节将介绍另外一种更为简单实用的写入方法即流写入类 StreamWriter StreamWriter类允许直接将字符和字符串写入文件 StreamWriter类的构造函数一共有7种 此处只介绍常用的3种 6 2 4流读取类 相对于StreamWriter类 流读取类 StreamReader 提供了另一种从文件中读取数据的方法 StreamReader类的应用方式非常相似于StreamWriter类 此处直接介绍StreamReader类的构造函数 6 2 5二进制流写入类 二进制流写入类 BinaryWriter 是除了FileStream和StreamWriter之外的另一种向文件写入数据的方式 与之前两种方式不同的是BinaryWriter类以二进制形式将基元类型写入流 并支持用特定的编码写入字符串 6 2 6二进制流读取类 二进制流读取类 BinaryReader 是和BinaryWriter类相对应的二进制数据读取类 BinaryReader类用特定的编码将基元数据类型读作二进制值 其应用方法与BinaryWriter大致相同 此处直接介绍其构造函数 6 3文件操作实例 此处将会实现一个比较复杂的实例 这个实例中将涉及大部分于文件相关的操作 使读者对文件的相关操作有一个更为全面的认识 实例中将要实现如下功能 1 指定目录下文件的显示 2 文件的添加 3 文件的删除 4 文件的重命名 5 文件的打开 6 3 1窗体布局 窗体布局步骤如下 6 3 2代码实现 下面开始编写代码 在frmMain cs中添加如下引用 1 usingSystem IO 2 usingSystem Diagnostics 在frmMain窗体的属性面板中的事件选项卡中找到Load项 双击右侧空白处 VisaulStudio2005会自动转入代码编辑页面 并产生了一个空方法frmMain Load VisaulStudio2005已经在frmMain Designer cs中将 frmMian 窗体的Load方法和frmMain Load方法关联起来 6 3 3实例进阶 希望读者通过对程序的进一步的修改增强对文件输入输出的了解和认识 并最终实现一个简单的资源管理器 通常一个资源管理器的结构中需要包含文件列表 这其中包括树形列表和一般列表 另外还要包括一些常用的文件操作 6 4小结 至此 在本章已经讲解了 NET中操作文件进行输入输出操作的大部分方法 本章介绍了System IO命名空间下的File类 Directory类 FileInfo类 DirectoryInfo类等基础类 本章还介绍了FileStream类 StreamReader类 StreamWriter类 BinaryReader类及BinaryWriter类等常用操作类 并且通过代码实例 使读者了解了这些类的用法 本章的最后还实现了一个较为复杂的应用程序 帮
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 木竹材刨切工艺考核试卷及答案
- 桥梁施工安全防护设施验收工艺考核试卷及答案
- 橡胶硫化设备安全操作工艺考核试卷及答案
- 酶制剂提取工三级安全教育(班组级)考核试卷及答案
- 园林工程技术试题及答案
- 2025-2026学年赣美版(2024)小学美术三年级上册《体验先民生活》教学设计
- 银行支付结算试题及答案
- 银行运营管理岗位考试题及答案
- 银行英语考试题型及答案
- 银行信用度测试题及答案
- 次氯酸钠培训
- 腰椎间盘突出伴神经根病
- 幼儿园孩子受伤赔偿协议书范文
- 合肥市肥东县大学生乡村医生专项计划招聘考试真题
- 林地恢复协议书(2篇)
- 2024年哈尔滨卫生系统考试真题
- 非结核分枝杆菌病诊断与治疗指南(2020年版)解读课件
- 内部控制手册
- 护理分层培训考核分析问题总结
- 研学大赛理论模拟试题二附有答案
- 红火蚁监测和防控技术
评论
0/150
提交评论