第9章VB NET文件操作

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第九章文件操作9.1文件概述文件是指在各种存储介质上永久存储的数据的集合,它是进行数据读写操作的基本对象。例如用Excel或Word编辑制作的表格或文档就是一个文件,把它存放在磁盘上就是磁盘文件,输出到打印机上就是一个打印机文件。计算机以这些设备为对象进行输入输出,对这些设备的数据统一按文件处理。知识点1文件结构为了有效的对数据进行处理,必须以某种特定的方式存放数据,这种特定的方式称为文件结构。文件由记录(Record)组成,一个文件含一个以上的记录,记录是由一组相关的字段(Field)组成。字段也称域,由若干字符(Character)组成,用来表示一项数据。字符是构成文件的最基本单位。字符可以是数字、字母、特殊符号或单一字节。例如某班有30名学生,该班的学生相关信息表由如表9-1所示的30条记录组成;每个学生的基本信息记录由学号、姓名、性别、年龄和班级等数据项组成;每个数据项又由相关字母或数字组成。知识点2文件种类根据不同的标准,文件可分为不同的类型。例如根据数据的存取方式和结构可将文件分为顺序文件和随机文件。1.顺序文件是最简单、最基本的文件结构。文件中的记录一个接一个的存放,每条记录的长度不定,记录间的分界符一般为回车符。顺序文件的查找必须从第一条记录开始逐条顺序读取,一直找到所需要的数据为止。顺序文件的优点是使用简单,占用内存资源比较少。缺点是访问速度慢,不易维护。2.随机文件由固定长度的记录组成,每个记录又由固定数目的数据项所组成,此外每条记录都有一条记录号。在存取数据时,只要指明是第几号记录,就可以完成相应的存取操作。其优点是存入和读取的速度较快,数据容易更新。缺点是占用空间比较大,程序设计较为麻烦。根据文件的数据编码可以将文件分为文本文件和二进制文件。文本文件是由ASCII码字符所组成并且不带任何格式的文件,也称之为ASCII文件,这种文件也可用通常的字处理软件来建立和编辑;二进制文件是由二进制格式的数据编码存储的文件,由于不是使用普通的字符方式保存,所以不能用普通的字处理软件编辑。除此之外,可根据存储数据的性质将文件分为程序文件和数据文件;根据文件的流向分为输入文件和输出文件;根据文件的存储介质分为磁盘文件、磁带文件等等。知识点3文件访问方式文件访问主要是对文件的读、写操作。读文件是将文件中的数据读入计算机内存。即向计算机输入数据。写文件---------将计算机内存中的数据写入文件中。顺序文件、随机文件以及二进制文件由于文件中记录的组织方式和数据编码格式有所差别,所以文件的访问可分为顺序型、随机型和二进制型。顺序型适用于读取连续存储的文本文件;随机型适用于读取由固定长度记录组成的文本文件或二进制文件;二进制型适用于读取任意有结构的文件,除了没有数据类型和记录的概念外,与随机访问类似。VB.NET提供了3种文件访问的方法:1.VB传统语句和函数直接访问文件2.通过.NET的System.IO模型以流的方式对各种数据文件进行访问3.通过文件系统对象模型(FSO)访问文件本章主要介绍第二种文件访问方式。9.2文件流与System.IO模型VB.NET对文件的操作一种重要的方法就是利用流来完成。流的输入和输出是利用System.IO模型来实现的。知识点1System.IO模型概念System.IO模型提供了一个面向对象的方法访问文件系统。System.IO模型提供了许多针对文件、文件夹的操作功能,特别是以流(Stream)的方式对各种数据进行访问,这种访问方式不仅灵活,而且可以保证编码接口的统一。System.IO模型的实现包含在System.IO命名空间中,该命名空间含有对数据流和文件进行同步或异步读写的类、结构和枚举类型。可以说,System.IO模型是一个文件操作类库,包含的类可用于文件的创建、读写、复制、移动和删除等操作。大致可以分为三类:操作流的类:包括操作文件流、内存流、读写这些流的类操作文件夹的类:文件夹创建、移动、删除已经磁盘信息访问操作文件的类:对文件创建、移动、删除、获取文件信息,如扩展名、创建时间、是否只读等。其中最常用的类如表9.2所示。知识点2文件流在现实世界中,“流”是气体或液体运动的一种状态。借用这个概念,VB.NET用流(Stream)表示数据的传输操作,将数据从内存传输到某个载体或设备中,叫做输出流;将数据从某个载体或设备传输到内存中,叫做输入流。流的概念进一步拓展,可以把与数据传输有关的事物称为流。例如把文件变量成为流,除此之外,还有网络流、内存流等。VB.NET将文件看成是顺序的字节流,文件流是字节序列的抽象概念,因此我们可以把文件视为存储在磁盘上的一系列二进制字节信息。System.IO模型下读写文件时,不是直接操作文件,而是通过文件流的某些方法来实现文件的读写。一般来说对流的操作有3类:1.读取:可以从流读取。读取是从流到数据结构(如字节数组)的数据传输。2.写入:可以向流写入。写入是从数据源到流的数据传输。3.定位:流可以支持查找。查找是对流内的当前位置进行查询和修改。VB.NET提供的Stream类是所有流的基类,由它派生出文件流FileStream和缓冲区流BufferedStream。在System.IO模型中,文件操作的基本方式是:用FILE类打开操作系统文件,建立对应的文件流即FileStream对象,用StreamReader/StreamWriter类提供的方法对该文件流(文本文件)进行读写或用BinaryReader/BinaryWriter类提供的方法对该文件流(二进制文件)进行读写。9.3文件夹和文件操作VB.NET提供了Directory和File等几个类来实现对文件夹和文件的复制、移动、删除等操作。本节将介绍与文件夹和文件操作相关的类及其用法。任务1编写一个简易的资源浏览器。知识点1Directory类对文件夹的操作主要利用Directory和DirectoryInfo两个类来实现,两者很相似。区别在于Directory对象方法可以直接调用,而DirectoryInfo对象在使用前必须先建立一个对象的实例,然后才能调用DirectoryInfo方法。无论Directory类还是DirectoryInfo类都是System.IO命名空间的成员,因此在使用两个类之前,需要先引入System.IO命名空间。Directory类提供了文件夹操作的全部方法,由于该类提供的方法是共享的,所以不需要先建立对象就可以直接调用它的方法,下面介绍它的常用方法:CreateDirectory创建文件夹对象例如:Directory.CreateDirectory(“E:\VBNET”)Delete删除指定的文件夹例如Directory.Delete(“E:\VBNET”)表示要删除E盘下的VBNET空文件夹;如果该文件夹下含有子文件夹或文件,则使用Directory.Delete(“E:\VBNET”,True)Exitsts判断文件夹是否存在例如:IfDirectory.Exists(“E:\VBNET”)thenDirectory.Delete(“E:\VBNET”,True)Move移动文件夹该方法是移动指定整个文件夹到同一磁盘中的另一个位置,并具有改名功能。例如:将E盘下的VBNET文件夹移动到E盘Program文件夹下,并改名为VB,语句如下:Directory.Move(“E:\VBNET”,“E:\program\VB”)GetLogicalDrivers获取逻辑盘符该方法功能是返回一个字符串数组,为当前计算机中所有逻辑驱动器名,每个驱动器名是形如“C:\”的字符串,格式如下:Directory.GetLogicalDrivers()GetDirectories获取文件夹下的子文件夹GetFiles获取文件夹下的文件例如:DimFileName()AsStringFileName=Directory.GetFiles(“E:\VBNET”,“*.TXT”,SearchOption.AllDirectories)表示在E盘下的VBNET文件夹下及其子文件夹下查找扩展名为TXT的文件。任务2设计一个窗体,显示指定文件夹中所有文件的文件名,创建时间和文件属性知识点2File类File类主要执行与文件有关的操作,包括文件的创建、移动、删除和打开等。所有的File方法都是静态的,无需类的实例。AppendAllText追加文本文件例如将文本“VB.NET”添加到E:\VBNET\ABC.TXT文件中,语句如下:File.AppendAllText(“E:\VBNET\ABC.TXT”,“VB.NET”)Copy复制文件例如将c:\setup.txt文件复制到e:\vbnet并改名为mytext.text,如果有同名文件,则覆盖,语句如下:File.Copy(“c:\setup.txt”,“e:\vbnet”,True)例如在E盘VBNET文件夹下创建myfile.dat文件:File.Create(“E:\VBNET\myfile.dat”)Delete删除文件例如删除E盘VBNET文件夹下的myfile.dat文件:File.Delete(“E:\VBNET\myfile.dat”)Exists判断文件是否存在以下语句判断E盘VBNET文件夹下是否存在myfile.dat文件,如果存在则删除。IfFile.Exists(“E:\VBNET\myfile.dat”)thenFile.Delete(“E:\VBNET\myfile.dat”)EndIfMove移动文件例如:File.Move(“E:\text1.txt”,“F:\text2.txt”)将E盘下的text1.txt文件移动到F盘下,并改名为text2.txt。Open打开文件例如以读写方式打开F盘下Text2.txt文件,若文件不存在则创建该文件,语句如下:File.Open(“f:\text2.txt”,FileMode.OpenOrCreate,FileAccess.ReadWrite)GetAttributes和SetAttributes获取和设置文件属性9.4文件读写本节将介绍利用Stream、FileStream、StreamReader和StreamWriter四个类来实现文件的读写。任务3设计一个能打开文本文件并对其内容进行读写操作的窗体要求:利用Stream流将文本显示在窗体多行文本框中,并修改其内容后写入到磁盘文件中。知识点1Stream类Stream类是所有流的基类,该类及其派生类提供不同类型的输入和输出的一般视图主要属性(1)CanRead属性获取一个值,该值指示当前流是否支持读取。(2)CanSeek属性获取一个值,该值指示当前流是否支持查找。(3)CanTimeout属性获取一个值,该值确定当前流是否可以超时。(4)CanWrite属性获取一个值,该值指示当前流是否支持写入。(5)Length属性获取用字节表示的流的长度。(6)Position属性获取或设置此流的当前位置。(7)ReadTimeout属性获取或设置一个值,该值确定流在超时前尝试读取多长时间。2.常用方法(1)Close方法关闭当前流并释放与之关联的所有资源。(2)Read方法从文件中读取字节序列(3)Seek方法设置当前流中的位置,返回一个Long型值(4)SetLength方法将该流的长度设置为指定的值(5)Write方法用于向文件写入数据任务4设计一个窗体,能打开文本文件并对其内容进行读写操作要求:利用FileStream流将文本显示在窗体多行文本框中,并修改其内容后写入到磁盘文件中。知识点2FileStream类FileStream类对文件系统上的文件执行读取、写入、打开和关闭操作,并对其他与文件相关的操作系统句柄执行操作,如管道、标准输入和标准输出。用FileStream类创建Fil

1 / 27
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功