第9章VBNET文件操作_第1页
第9章VBNET文件操作_第2页
第9章VBNET文件操作_第3页
第9章VBNET文件操作_第4页
第9章VBNET文件操作_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、第九章第九章 文件操作文件操作 9.1 文件概述文件概述 n文件是指在各种存储介质上永久存储的数据的集合,它是进行数据读写操作的基本对象。例如用Excel或Word编辑制作的表格或文档就是一个文件,把它存放在磁盘上就是磁盘文件,输出到打印机上就是一个打印机文件。计算机以这些设备为对象进行输入输出,对这些设备的数据统一按文件处理。知识点1 文件结构 n为了有效的对数据进行处理,必须以某种特定的方式存放数据,这种特定的方式称为文件结构。文件由记录(Record)组成,一个文件含一个以上的记录,记录是由一组相关的字段(Field)组成。字段也称域,由若干字符(Character)组成,用来表示一项数

2、据。字符是构成文件的最基本单位。字符可以是数字、字母、特殊符号或单一字节。n例如某班有30名学生,该班的学生相关信息表由如表9-1所示的30条记录组成;每个学生的基本信息记录由学号、姓名、性别、年龄和班级等数据项组成;每个数据项又由相关字母或数字组成。知识点2 文件种类 n根据不同的标准,文件可分为不同的类型。n例如根据数据的存取方式和结构可将文件分为顺序文件和随机文件。 1顺序文件是最简单、最基本的文件结构。文件中的记录一个接一个的存放,每条记录的长度不定,记录间的分界符一般为回车符。顺序文件的查找必须从第一条记录开始逐条顺序读取,一直找到所需要的数据为止。顺序文件的优点是使用简单,占用内存

3、资源比较少。缺点是访问速度慢,不易维护。 2随机文件由固定长度的记录组成,每个记录又由固定数目的数据项所组成,此外每条记录都有一条记录号。在存取数据时,只要指明是第几号记录,就可以完成相应的存取操作。其优点是存入和读取的速度较快,数据容易更新。缺点是占用空间比较大,程序设计较为麻烦。n根据文件的数据编码可以将文件分为文本文件和二进制文件。文本文件是由ASCII码字符所组成并且不带任何格式的文件,也称之为ASCII文件,这种文件也可用通常的字处理软件来建立和编辑;二进制文件是由二进制格式的数据编码存储的文件,由于不是使用普通的字符方式保存,所以不能用普通的字处理软件编辑。n除此之外,可根据存储数

4、据的性质将文件分为程序文件和数据文件;根据文件的流向分为输入文件和输出文件;根据文件的存储介质分为磁盘文件、磁带文件等等。知识点知识点3 文件访问方式文件访问方式 n文件访问主要是对文件的读、写操作。n读文件是将文件中的数据读入计算机内存。即向计算机输入数据。n写文件-将计算机内存中的数据写入文件中。n顺序文件、随机文件以及二进制文件由于文件中记录的组织方式和数据编码格式有所差别,所以文件的访问可分为顺序型、随机型和二进制型。n顺序型适用于读取连续存储的文本文件;随机型适用于读取由固定长度记录组成的文本文件或二进制文件;二进制型适用于读取任意有结构的文件,除了没有数据类型和记录的概念外,与随机

5、访问类似。nVB.NET提供了3种文件访问的方法:1VB传统语句和函数直接访问文件2通过.NET的System.IO模型以流的方式对各种数据文件进行访问3通过文件系统对象模型(FSO)访问文件本章主要介绍第二种文件访问方式。9.2 文件流与文件流与System.IO模型模型 nVB.NET对文件的操作一种重要的方法就是利用流来完成。流的输入和输出是利用System.IO模型来实现的。n知识点1 System.IO模型概念 nSystem.IO模型提供了一个面向对象的方法访问文件系统。System.IO模型提供了许多针对文件、文件夹的操作功能,特别是以流(Stream)的方式对各种数据进行访问,

6、这种访问方式不仅灵活,而且可以保证编码接口的统一。nSystem.IO模型的实现包含在System.IO命名空间中,该命名空间含有对数据流和文件进行同步或异步读写的类、结构和枚举类型。可以说,System.IO模型是一个文件操作类库,包含的类可用于文件的创建、读写、复制、移动和删除等操作。大致可以分为三类:n操作流的类:包括操作文件流、内存流、读写这些流的类n操作文件夹的类:文件夹创建、移动、删除已经磁盘信息访问n操作文件的类:对文件创建、移动、删除、获取文件信息,如扩展名、创建时间、是否只读等。n其中最常用的类如表其中最常用的类如表9.2所示所示。知识点2 文件流 n在现实世界中,“流”是气

7、体或液体运动的一种状态。借用这个概念,VB.NET用流(Stream)表示数据的传输操作,将数据从内存传输到某个载体或设备中,叫做输出流;将数据从某个载体或设备传输到内存中,叫做输入流。流的概念进一步拓展,可以把与数据传输有关的事物称为流。例如把文件变量成为流,除此之外,还有网络流、内存流等。nVB.NET将文件看成是顺序的字节流,文件流是字节序列的抽象概念,因此我们可以把文件视为存储在磁盘上的一系列二进制字节信息。System.IO模型下读写文件时,不是直接操作文件,而是通过文件流的某些方法来实现文件的读写。n一般来说对流的操作有3类:1读取:可以从流读取。读取是从流到数据结构(如字节数组)

8、的数据传输。2写入:可以向流写入。写入是从数据源到流的数据传输。3定位:流可以支持查找。查找是对流内的当前位置进行查询和修改。nVB.NET提供的Stream类是所有流的基类,由它派生出文件流FileStream和缓冲区流BufferedStream。在System.IO模型中,文件操作的基本方式是:用FILE类打开操作系统文件,建立对应的文件流即FileStream对象,用StreamReader/StreamWriter类提供的方法对该文件流(文本文件)进行读写或用BinaryReader/BinaryWriter类提供的方法对该文件流(二进制文件)进行读写。9.3 文件夹和文件操作 VB

9、.NET提供了Directory和File等几个类来实现对文件夹和文件的复制、移动、删除等操作。本节将介绍与文件夹和文件操作相关的类及其用法。n任务任务1 编写一个简易的资源浏览器。编写一个简易的资源浏览器。 知识点1 Directory类 n对文件夹的操作主要利用Directory和DirectoryInfo两个类来实现,两者很相似。区别在于Directory对象方法可以直接调用,而DirectoryInfo对象在使用前必须先建立一个对象的实例,然后才能调用DirectoryInfo方法。n无论Directory类还是DirectoryInfo类都是System.IO命名空间的成员,因此在使

10、用两个类之前,需要先引入System.IO命名空间。nDirectory类提供了文件夹操作的全部方法,由于该类提供的方法是共享的,所以不需要先建立对象就可以直接调用它的方法,下面介绍它的常用方法: nCreateDirectory 创建文件夹对象创建文件夹对象例如:Directory.CreateDirectory(“E:VBNET”)nDelete 删除指定的文件夹删除指定的文件夹 例如Directory.Delete(“E:VBNET”)表示要删除E盘下的VBNET空文件夹;如果该文件夹下含有子文件夹或文件,则使用Directory.Delete(“E:VBNET”,True)nExits

11、ts 判断文件夹是否存在判断文件夹是否存在例如:If Directory.Exists(“E:VBNET”) then Directory.Delete(“E:VBNET”,True)nMove 移动文件夹移动文件夹该方法是移动指定整个文件夹到同一磁盘中的另一个位置,并具有改名功能 。例如:将E盘下的VBNET文件夹移动到E盘Program文件夹下,并改名为VB,语句如下:Directory.Move(“E:VBNET”,“E:programVB”) nGetLogicalDrivers 获取逻辑盘符获取逻辑盘符该方法功能是返回一个字符串数组,为当前计算机中所有逻辑驱动器名,每个驱动器名是形如

12、“C:”的字符串,格式如下:Directory.GetLogicalDrivers()GetDirectories 获取文件夹下的子文件夹nGetFiles 获取文件夹下的文件获取文件夹下的文件例如:Dim FileName() As StringFileName=Directory.GetFiles(“E:VBNET”,“*.TXT”,SearchOption.AllDirectories)表示在E盘下的VBNET 文件夹下及其子文件夹下查找扩展名为TXT的文件。任务任务2 设计一个窗体,显示指定文件夹中所有文件的设计一个窗体,显示指定文件夹中所有文件的文件名,创建时间和文件属性文件名,创建

13、时间和文件属性n知识点知识点2 File 类类nFile类主要执行与文件有关的操作,包括文件的创建、移动、删除和打开等。所有的File方法都是静态的,无需类的实例。 nAppendAllText 追加文本文件追加文本文件例如将文本“VB.NET”添加到E:VBNETABC.TXT文件中,语句如下:File.AppendAllText(“E: VBNETABC.TXT”,“VB.NET”)nCopy 复制文件复制文件例如将c:setup.txt文件复制到e:vbnet并改名为mytext.text,如果有同名文件,则覆盖,语句如下:File.Copy(“c:setup.txt”,“ e:vbne

14、t”,True)例如在E盘VBNET文件夹下创建myfile.dat文件:File.Create(“E:VBNETmyfile.dat”)nDelete 删除文件删除文件例如删除E盘VBNET文件夹下的myfile.dat文件:File.Delete(“E:VBNETmyfile.dat”)nExists 判断文件是否存在判断文件是否存在以下语句判断以下语句判断E盘盘VBNET文件夹下是否存在文件夹下是否存在myfile.dat文件,如果存在文件,如果存在则删除。则删除。If File.Exists(“E:VBNETmyfile.dat”) thenFile.Delete(“E:VBNETmy

15、file.dat”)End IfnMove 移动文件移动文件例如:例如:File.Move(“E:text1.txt”,“F:text2.txt”)将将E盘下的盘下的text1.txt文件移动到文件移动到F盘下,并改名为盘下,并改名为text2.txt。nOpen 打开文件打开文件例如以读写方式打开例如以读写方式打开F盘下盘下Text2.txt文件,若文件不存在则创建该文文件,若文件不存在则创建该文件,语句如下:件,语句如下:File.Open(“f:text2.txt”,FileMode.OpenOrCreate,FileAccess.ReadWrite)nGetAttributes和和Se

16、tAttributes 获取获取和设置文件属性和设置文件属性9.4 文件读写文件读写 n本节将介绍利用Stream、FileStream、StreamReader和StreamWriter四个类来实现文件的读写。 n任务任务3 设计一个能打开文本文件并对其设计一个能打开文本文件并对其内容进行读写操作的窗体内容进行读写操作的窗体要求:利用Stream流将文本显示在窗体多行文本框中,并修改其内容后写入到磁盘文件中。 知识点知识点1 Stream类类nStream类是所有流的基类,该类及其派生类提供不同类型的输入和输出的一般视图 n主要属性(1)CanRead属性获取一个值,该值指示当前流是否支持读

17、取。(2)CanSeek属性获取一个值,该值指示当前流是否支持查找。(3)CanTimeout属性获取一个值,该值确定当前流是否可以超时。(4)CanWrite属性获取一个值,该值指示当前流是否支持写入。(5)Length属性获取用字节表示的流的长度。(6)Position属性获取或设置此流的当前位置。(7)ReadTimeout属性获取或设置一个值,该值确定流在超时前尝试读取多长时间。n2常用方法(1)Close方法关闭当前流并释放与之关联的所有资源。(2)Read方法从文件中读取字节序列(3)Seek方法设置当前流中的位置,返回一个Long型值(4)SetLength方法将该流的长度设置为

18、指定的值(5)Write方法用于向文件写入数据n任务任务4设计一个窗体,能打开文本文件并对设计一个窗体,能打开文本文件并对其内容进行读写操作其内容进行读写操作n要求:利用FileStream流将文本显示在窗体多行文本框中,并修改其内容后写入到磁盘文件中。n知识点知识点2 FileStream类类nFileStream类对文件系统上的文件执行读取、写入、打开和关闭操作,并对其他与文件相关的操作系统句柄执行操作,如管道、标准输入和标准输出。 n用FileStream类创建FileStream流对象方法的语法格式如下:nDim 对象名 As New FileStream(path,FileMode,

19、AccessMode,ShareMode)n各参数说明同File.Open的参数。nFileStream类有如下一些常用的方法:n1SetLength方法是设置文件的长度。n2Seek方法功能是对文件进行随机访问。n3Read方法从文件读取数据。n4Write方法向文件写数据。n5Lock方法锁定文件,防止其他进程访问文件的全部或部分,语法格式如下:nLock(Position,Length)nPosition为Long类型数据,指定要锁定范围的起使位置;Length为Long类型数据,指定要锁定的范围。n6Unlock方法可解锁用Lock方法锁定的文件,调用的语法格式如下:nUnLock(Position,Length)nLock和Unlock两个方法是在文件读写操作中Filstream类两个最为重要的方法。由于Filestream类为文件读写提供通道,一个文件可能有多个文件读写,为了避免数据写入和读取的混乱,需要单通道操作,这时可以使用Lock方法来锁定,阻止其他的进程对文件执行操作,在操作完毕后可以使用Unlock方法对其解锁。任务5 设计一个窗体,能打开文本文件并对其内容进行读写操作 n选择一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论