第16章流和文件 主要内容 本章介绍文件操作,主要内容包括流和文件、文件的输入输 出、读写二进制文件、读写文本文件以及文件管理。本章学 习的目标包括:理解流类层次结构;掌握对文件的创建、读 写和相关操作;理解C#应用程序中对文件的管理
第16章 流和文件 主要内容 本章介绍文件操作,主要内容包括流和文件、文件的输入输 出、读写二进制文件、读写文本文件以及文件管理。本章学 习的目标包括:理解流类层次结构;掌握对文件的创建、读 写和相关操作;理解C#应用程序中对文件的管理
16.1基本概念 完整的数据集合称为一个“文件”,文件由“记录”构成, 记录可以是任何类型的数据 文件存放在硬盘上,就有一个存放路径。对于路径,一般采 用目录管理的方式 C#使用流来处理数据文件。 在C#中,文件处理属于输入、输出操作,因此,文件的相关 操作都需使用 System. IO名空间。 System IC名空间包含允许读 写文件和数据流的类型以及提供基本文件和目录支持的类型, 该名空间中包含许多文件操作相关的类。我们大致将这些主 要的类分为三种:第一种类和文件的管理有关,比如创建文 件、复制文件、将文件从一个路径移动到另一个路径下等等 第二种类和文件本身的操作相关,如读、写文件等。第三种 类则是文件操作时的异常类,例如打开不存在的文件等
16.1 基本概念 完整的数据集合称为一个“文件”,文件由“记录”构成, 记录可以是任何类型的数据。 文件存放在硬盘上,就有一个存放路径。对于路径,一般采 用目录管理的方式。 C#使用流来处理数据文件。 在C#中,文件处理属于输入、输出操作,因此,文件的相关 操作都需使用System.IO名空间。System.IO 名空间包含允许读 写文件和数据流的类型以及提供基本文件和目录支持的类型, 该名空间中包含许多文件操作相关的类。我们大致将这些主 要的类分为三种:第一种类和文件的管理有关,比如创建文 件、复制文件、将文件从一个路径移动到另一个路径下等等。 第二种类和文件本身的操作相关,如读、写文件等。第三种 类则是文件操作时的异常类,例如打开不存在的文件等
16.12文件相关类的层次结构 stem. IO Binary Reader Sy stem. IO Directory System. MarshalBy RefObject System. IO DirectoryInfo System.Io. Srea System. IO BufferedStream System. IO File Stream System. IO. Memory Stream e System. IO.TextReader System. IO StreamReader System. IO StringReader stem.Io.Text Writer System1O.StreamWriter Sy stem. IO. Memory Write 图161文件相关类的层次结构
16.1.2 文件相关类的层次结构 System.MarshalByRefObject System.IO.FileSystemInfo System.IO.DirectoryInfo System.IO.FileInfo System.IO.Sream System.IO.BufferedStream System.IO.FileStream System.IO.MemoryStream System.IO.TextReader System.IO.TextWriter System.IO.StreamReader System.IO.StreamWriter System.IO.StringReader System.IO.MemoryWriter System.Object System.IO.BinaryReader System.IO.Path System.IO.File System.IO.BinaryWriter System.IO.Directory 图16.1 文件相关类的层次结构
162文件的基本操作 这一节讲解文件的基本操作,主要是文件的创建、读、写和更新。 文件的创建一般属于文件管理的范畴,而文件的读、写和更新则通 常认为是文件的操作,因为文件的管理,还有目录管理,相关的类 般不是 Stream和它的派生类,而文件的读写则一般由 Stream或者 它的派生类来实现,读写相关的类还有 TextReader、 Text Writer、 Binary reader、 Binary Writer及其相关类
16.2 文件的基本操作 这一节讲解文件的基本操作,主要是文件的创建、读、写和更新。 文件的创建一般属于文件管理的范畴,而文件的读、写和更新则通 常认为是文件的操作,因为文件的管理,还有目录管理,相关的类 一般不是Stream和它的派生类,而文件的读写则一般由Stream或者 它的派生类来实现,读写相关的类还有TextReader、TextWriter、 BinaryReader、BinaryWriter及其相关类
16.2.1文件的创建(1) ■利用Fie类 第一种方法利用File类,因为File类提供用于创建、复制、删除、移动和打开文件 的静态方法,因此创建文件时不需要生成Fie类的实例,直接利用Fie类,调用它 的 Create()方法即可,代码如下: File. create( filename) filename可以是文件名本身,也可以带绝对地址 ■利用 Filelnfo类 第二种方法和第一种类似,利用的是 Filelnfo类,因为 Filelnfo类提供创建、复制 删除、移动和打开文件的实例方法,因此,和上面方法的不同之处在于创建文件 时,先生成 FileInfo类的实例,调用该实例的 Create()方法。其示意代码如下: FileInfo myfile= new FileInfo(filename): myfile. Create 同样, filename可以是文件名本身,也可以带绝对地址
16.2.1 文件的创建 (1) ◼ 利用File类 第一种方法利用File类,因为File类提供用于创建、复制、删除、移动和打开文件 的静态方法,因此创建文件时不需要生成File类的实例,直接利用File类,调用它 的Create()方法即可,代码如下:File.Create(filename); filename可以是文件名本身,也可以带绝对地址。 ◼ 利用FileInfo类 第二种方法和第一种类似,利用的是FileInfo类,因为FileInfo类提供创建、复制、 删除、移动和打开文件的实例方法,因此,和上面方法的不同之处在于创建文件 时,先生成FileInfo类的实例,调用该实例的Create()方法。其示意代码如下: FileInfo myfile = new FileInfo(filename); myfile.Create(); 同样,filename可以是文件名本身,也可以带绝对地址