《文件操作》ppt课件_第1页
《文件操作》ppt课件_第2页
《文件操作》ppt课件_第3页
《文件操作》ppt课件_第4页
《文件操作》ppt课件_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、第6章 文件操作 文件操作是一个操作系统重要的组成部分之一,也是一个运用程序所必需具备的功能。一个完好的运用程序,必需具有系统和用户信息交换的功能。而有效的文件操作,是实现信息交换的手段之一。 C#提供了强大的文件操作的功能。运用这些功能,可以很方便地实现文件的存储管理、对文件的读写操作等。6.1 文件和文件夹 文件与前文引见的数组等变量不同。变量中的数据只是在程序运转时存在,随着程序的终结变量的内容也随之丧失。而文件中的内容可以永久地存储数据到硬盘或其他设备上,这就是通常所说的耐久性数据。文件的这种特性可以使我们方便地存储运用程序配置等数据,以便在程序下一次运转时运用。.NET对文件的操作提

2、供了方便的工具。 本章的代码实例中如无特殊阐明,将会包含以下援用: 1.using System; 2.using System.IO;6.1.1 System.IO类引见 System.IO类包含了一切本章所要引见的输入输出类。下面先对System.IO类进展一个简要的引见,使读者有一个简单的了解。表6-1所示为System.IO包含的一切类及其功能。 System.IO命名空间下的类提供了非常强大的功能。对这些类熟练地掌握可以使我们编写出功能非常强大的代码,但对于初学者来说,常用的类有File,Directory,Path,FileInfo,DirectoryInfo,FileStream

3、,StreamReader,StreamWriter及FileSystemWatcher等,这些类的功能可以满足普通运用程序的需求。下面的章节中,将对这些常用类进展逐一引见。6.1.2 文件类 文件类File是最重要和最根底的一个类。File类提供了大量的公开方法,有42种之多,其中大部分方法为静态方法。File类提供了用于创建、复制、删除、挪动和翻开文件的静态方法,并协助创建FileStream对象。6.1.3 文件夹类读者对Windows的文件管理方式应该并不陌生,其采用的是一种树形管理方式,文件的上层通常还存在假设干层文件夹。本小节将要向读者引见C#中文件夹类Directory的知识。D

4、irectory类同File类类似,公开了用于创建、挪动目录和子目录等静态方法,方法非常多,此处引见一些常用方法,6.1.4 文件信息类 文件信息类FileInfo与File类不同。它虽然也提供了创建、复制、删除、挪动和翻开文件的方法,并且协助创建FileStream对象,但是它提供的仅仅是实例方法。因此要运用FileInfo类,必需先实例化一个FileInfo对象。FileInfo类的常用方法与File类根本一样,此处仅引见FileInfo类的常用属性,6.1.5 文件夹信息类文件夹信息类DirectoryInfo与文件信息类FileInfo类似。它是一个实例类,同样提供了Directory

5、类中的大部分方法。同FileInfo类一样,运用DirectoryInfo类之前必需实例化一个DirectoryInfo对象。DirectoryInfo类拥有和FileInfo类几乎一样的属性,6.1.6 文件信息类与文件夹信息类的用法 文件信息类FileInfo和文件夹信息类DirectoryInfo具有文件类File和文件夹类Directory的大部分功能。读者在实践运用中该当留意选择运用不同的实现。 1File类和Directory类适宜用于在对象上单一的方法调用。此种情况下静态方法的调用在速度上效率比较高,由于此种方法省去了实例化新对象的过程。 2FileInfo类和Directory

6、Info类适宜用于对同一文件或文件夹进展几种操作的情况。此种情况下,实例化的对象不需每次都寻觅文件,只需调用该实例化的方法,比较节省时间。6.2 流 流是.NET操作文件的根本类。.NET中对文件的输入输出操作都要用到流。流分为输入流和输出流。通常,输入流用于读取数据,最常见的输入流莫过于键盘了。此前运用的大部分输入都是来源于键盘,其实输入流可以来源于很多设备,本章所主要讨论的输入流方式是磁盘文件。输出流那么用于向外部目的写数据,本章所讨论氖涑隽餍问揭步鱿抻诖排涛募6.2.1 流操作类引见.NET Framework中提供了5种常见的流操作类,用以提供文件的读取、写入等常见操作。该操作类的简单

7、阐明如表类说 明BinaryReader用特定的编码将基元数据类型读作二进制值BinaryWriter 以二进制方式将基元类型写入流,并支持用特定的编码写入字符串FileStream公开以文件为主的Stream,既支持同步读写操作,也支持异步读写操作StreamReader实现一个TextReader,使其以一种特定的编码从字节流中读取字符StreamWriter实现一个TextWriter,使其以一种特定的编码向流中写入字符6.2.2 文件流类FileStream文件流类FileStream公开了以文件为主的Stream,既支持同步读写操作,也支持异步读写操作。FileStream类的特点是

8、操作字节和字节数组。这种方式不适宜以字符数据构成的文本文件等类似文件的操作,但对随机文件操作等比较有效。FileStream类提供了对文件的低级而复杂的操作,但却可以实现更多高级的功能。FileStream类的构造函数有15种,此处仅对两种作简要引见,6.2.3 流写入类 运用FileStream类需求许多额外的数据类型转换操作,非常影响效率。本小节将引见另外一种更为简单适用的写入方法即流写入类StreamWriter。StreamWriter类允许直接将字符和字符串写入文件。StreamWriter类的构造函数一共有7种,此处只引见常用的3种,6.2.4 流读取类 相对于StreamWrit

9、er类,流读取类StreamReader提供了另一种从文件中读取数据的方法。StreamReader类的运用方式非常类似于StreamWriter类,此处直接引见StreamReader类的构造函数。6.2.5 二进制流写入类 二进制流写入类BinaryWriter是除了FileStream和StreamWriter之外的另一种向文件写入数据的方式。与之前两种方式不同的是BinaryWriter类以二进制方式将基元类型写入流,并支持用特定的编码写入字符串。6.2.6 二进制流读取类 二进制流读取类BinaryReader是和BinaryWriter类相对应的二进制数据读取类。BinaryRea

10、der类用特定的编码将基元数据类型读作二进制值。其运用方法与BinaryWriter大致一样,此处直接引见其构造函数。6.3 文件操作实例 此处将会实现一个比较复杂的实例。这个实例中将涉及大部分于文件相关的操作,使读者对文件的相关操作有一个更为全面的认识。实例中将要实现如下功能: 1指定目录下文件的显示; 2文件的添加; 3文件的删除; 4文件的重命名; 5文件的翻开。6.3.1 窗体规划 窗体规划步骤如下。6.3.2 代码实现 下面开场编写代码。在frmMain.cs中添加如下援用: 1. using System.IO; 2. using System.Diagnostics; 在frmM

11、ain窗体的属性面板中的事件选项卡中找到Load项,双击右侧空白处, Visaul Studio 2005会自动转入代码编辑页面,并产生了一个空方法frmMain_Load。Visaul Studio 2005曾经在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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论