您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 第12讲 文件和操作
第12章文件操作C#面向对象程序设计案例教程2教学目标了解System.IO命名空间中常用类。掌握文件的基本操作。掌握文本文件写入与读取操作。掌握二进制文件的写入与读取操作。3本章主要内容12.1System.IO命名空间和流的概念12.2文件的创建、打开、删除12.3获取文件基本信息12.4文本文件写入和读取12.5二进制文件写入和读取12.6本章小结412.1System.IO命名空间和流的概念文件管理是操作系统的一个重要组成部分,而文件操作就是用户在编写应用程序时进行文件管理的一种手段。在DOS、Windows操作系统中用到了常的FAT、FAT32、NTFS等文件系统,这些文件系统在操作系统内部实现时有不同的方式,然而它们提供给用户的接口是一致的,只要按照正规的方式来编写代码,而且程序不涉及到操作系统的具体特性那么生成的应用程序就可以不经改动而在不同的操作系统上移植,因此在编写对文件操作的代码时不需要考虑具体的实现方式,只需要利用语言环境提供的外部接口,C#提供了文件操作的强大功能,利用.NET环境所提供的功能程序员可以方便地编写C#程序,实现文件的存储管理、对文件的读写等各种操作。512.1System.IO命名空间和流的概念12.1.1System.IO命名空间在.NETFramework中,System.IO命名空间主要包含基于文件(和基于内存)的输入输出(I/O)服务的相关基类库。和其他命名空间一样,System.IO定义了一系列类、接口、枚举、结构和委托。它们中的大多数包含在mscorlib.dll中,另外有一部分System.IO命名空间的成员则包含在System.dll程序集中(由于VisualStudio2005会自动为项目添加这些程序集的引用,因此用户可以直接使用)。System.IO命名空间的多数类型主要用于编程操作物理目录和文件,而另一些类型则提供了从字符串缓冲和内存区域中读写数据的方法。为了让读者了解System.IO功能的概况,表12-1列出了一些主要的类,表12-2列出了一些主要的枚举。612.1System.IO命名空间和流的概念12.1.1System.IO命名空间712.1System.IO命名空间和流的概念12.1.1System.IO命名空间812.1System.IO命名空间和流的概念12.1.1System.IO命名空间912.1System.IO命名空间和流的概念12.1.2流的概念从概念上讲,流非常类似于单独的磁盘文件,它也是进行数据读取操作的基本对象。流为用户提供了连续的字节流存储空间,虽然数据实际存储的位置可以不连续甚至可以分布在多个磁盘上,但人们看到的是封装以后的数据结构,是连续的字节流抽象结构。流提供一种向后备存储写入或读取字节的一种方式,除了和磁盘文件直接相关的文件流以外,流有多种类型,流可以分布在网络中、内存中或者是磁带中。System.IO提供了一个抽象类Stream,表示对所有流的抽象,既然Stream是抽象类,所有其他流的类就都必须从Stream类中继承,从而封装了操作系统和底层存储的各个细节,使程序员把注意力集中到程序的应用逻辑上来。其中FileStream表示文件流,它按照字节方式对流进行读写,在C#中对文件的操作,实际上就是对文件流的操作。1012.1System.IO命名空间和流的概念12.1.2流的概念此外,System.IO命名空间中提供了不同的类来对流中的数据进行操作,这些类通常成对出现,一个用于读一个用于写。例如,TextReader和TextWriter以文本方式(即ASCII方式)对流进行读写;而BinaryReader和BinaryWriter采用的是二进制方式。TextReader和TextWriter都是抽象类,它们各有两个派生类:StreamReader和StringReader,以及StreamWriter和StringWriter。1112.2文件的创建、打开、删除12.2.1案例说明【案例简介】本案例创建一个文本文件,接着向文本文件输入数据,读取文本文件内容,进行文本文件之间的复制,最后删除文本文件。【案例目的】(1)了解File类的公共成员;(2)掌握File类的使用;(3)掌握文件的基本操作。【技术要点】(1)创建一个控制台应用程序p12_1,在Program.cs中添加代码;(2)按Ctrl+F5键编译并运行应用程序,输出结果如图12.1所示。1212.2文件的创建、打开、删除12.2.2代码分析1.使用File.CreateText()方法创建Path定义的D盘根目录下的文件MyTest.txt;2.利用File.OpenText()方法打开文件;3.利用File.Delete()方法删除文件。1312.2文件的创建、打开、删除12.2.3相关知识及注意事项File类通常和FileStream类协作完成对文件的创建、删除、复制、移动、打开等操作。所有的File方法都是静态的,不需要实例化即可以调用File方法。表12-3列出了File类公开的成员。1412.2文件的创建、打开、删除12.2.3相关知识及注意事项1512.2文件的创建、打开、删除12.2.3相关知识及注意事项1612.3获取文件基本信息12.3.1案例说明【案例简介】用File类的CreateText()方法创建一个文本文件,接着向文本文件输入数据,读取文本文件内容,使用Copy()方法进行文本文件之间的复制、Delete()方法删除新建的文件,分列显示指定目录下文件的基本信息。【案例目的】(1)了解FileInfo类的常用属性和使用方法;(2)掌握FileInfo类的有关获取文件信息的属性;(3)掌握文件的基本信息的获取。【技术要点】(1)创建一个控制台应用程序p12_2,在Program.cs中添加代码;(2)按Ctrl+F5键编译并运行应用程序,输出结果如图12.2所示。1712.3获取文件基本信息12.3.1案例说明【案例简介】用File类的CreateText()方法创建一个文本文件,接着向文本文件输入数据,读取文本文件内容,使用Copy()方法进行文本文件之间的复制、Delete()方法删除新建的文件,分列显示指定目录下文件的基本信息。【案例目的】(1)了解FileInfo类的常用属性和使用方法;(2)掌握FileInfo类的有关获取文件信息的属性;(3)掌握文件的基本信息的获取。【技术要点】(1)创建一个控制台应用程序p12_2,在Program.cs中添加代码;(2)按Ctrl+F5键编译并运行应用程序,输出结果如图12.2所示。1812.3获取文件基本信息12.3.2代码分析1.FileInfo根据参数path实例化成fi1;2.用fi1.CreateText()、fi1.OpenText()方法创建和打开文件;3.调用fi1.CreationTime、fi1.LastAccessTime等属性获取文件的基本信息。1912.3获取文件基本信息12.3.3相关知识及注意事项FileInfo类在功能上与File类有很多重叠的地方,如对文件的创建、修改、复制、移动和删除等操作,以及创建新的流对象类。FileInfo不是静态类,可以指定文件名来创建一个FileInfo对象,并通过对象成员来读取文件信息。表12-4、表12-5列出了FileInfo类的常用属性和常用方法。2012.3获取文件基本信息12.3.3相关知识及注意事项2112.3获取文件基本信息12.3.3相关知识及注意事项2212.4文本文件写入和读取12.4.1案例说明【案例简介】使用StreamWriter类,把数据写到文本文件中去,然后用StreamReader类将数据从文本文件中读出并显示。【案例目的】(1)了解StreamReader、StreamWriter类的常用属性和常用方法;(2)掌握利用StreamWriter类向文本文件中写入数据的方法;(3)掌握利用StreamReader类读取文本文件内容的方法。【技术要点】(1)创建一个控制台应用程序p12_3,在Program.cs中添加代码;(2)按Ctrl+F5键编译并运行应用程序,输出结果如图12.1所示。2312.4文本文件写入和读取12.4.2代码分析1.使用带参数的构造函数实例化StreamWriter类为myStreamWriter对象;2.StreamWriter类的构造函数取文件名和布尔值两个参数,当布尔值为false,则文件的内容将由StreamWriter进行重写,在任何情况下,如果文件已存在则被打开,如果它不存在则重新创建;3.利用StreamWriter类的WriterLine()方法在文本文件中按行写入指定数据;2412.4文本文件写入和读取12.4.2代码分析4.写完数据后,调用StreamWriter类的Close()方法,关闭关闭当前的StreamWriter对象和基础流;5.使用带参数的构造函数实例化StreamReader类为myStreamReader对象,打开指定路径下的文本文件;6.用StreamReader类的Peek()方法为循环条件,ReadLine()方法读取文本文件内容;7.读完数据后,调用StreamReader类的Close()方法,关闭文本文件。2512.4文本文件写入和读取12.4.3相关知识及注意事项StreamWriter类和StreamReader类提供了按文本模式读写数据的方法。表12-6、表12-7、表12-8、表12-9分别列出了StreamWriter类和StreamReader类的类用属性和常用方法。2612.4文本文件写入和读取12.4.3相关知识及注意事项2712.4文本文件写入和读取12.4.3相关知识及注意事项2812.5二进制文件写入和读取12.5.1案例说明【案例简介】实现如何向新的空文件流(MyTest.data)写入数据及从中读取数据。在D盘根目录中创建了数据文件之后,也就同时创建了相关的BinaryWriter类和BinaryReader类,BinaryWriter类用于向MyTest.data写入整数0~10,MyTest.data将文件指针置于文件尾。在将文件指针设置回初始位置后,BinaryReader类用于读出指定的内容。【案例目的】(1)了解BinaryReader、BinaryWriter类的常用属性和常用方法;(2)掌握利用BinaryWriter类向文件中写入数据的方法;(3)掌握利用BinaryReader类读取文件内容的方法。【技术要点】(1)创建一个控制台应用程序p12_4,在Program.cs中添加代码;(2)按Ctrl+F5键编译并运行应用程序,输出结果如图12.4所示。2912.5二进制文件写入和读取12.5.2代码分析1.使用带参数的构造函数实例化FileStream类为myFileStream对象;2.FileStream类的构造函数取文件名和文件模式两个参数;3.利用文件流对象myFileStream作为参数,实例化BinaryWriter类,生成二进制写入器对象myBinaryWriter;4.调用BinaryWriter类的Write()方法写入数据;5.写完数据后调用FileStream类和BinaryWriter类的Close()方法关闭二进制流;6.重载FileStream类的构造函数,取文件名以及文件Open和访问Read模式3个参数;3012.5二进制文件写入和读取12.5.2代码分析7.利用文件流对象myFileStream作为参数,实例化BinaryReader类,生成二进制读入器对象myBinaryReader;8.调用BinaryReader类的ReadInt32()方法读数据;9.读完数据后调用FileStream类和BinaryReader类的Close()方法关闭二进制流。3112.5二进制文件写入和读取12.5.3相关知识
本文标题:第12讲 文件和操作
链接地址:https://www.777doc.com/doc-3300536 .html