收藏 分销(赏)

第9章VB-NET文件操作PPT学习课件.ppt

上传人:快乐****生活 文档编号:9864757 上传时间:2025-04-11 格式:PPT 页数:27 大小:238KB 下载积分:10 金币
下载 相关 举报
第9章VB-NET文件操作PPT学习课件.ppt_第1页
第1页 / 共27页
第9章VB-NET文件操作PPT学习课件.ppt_第2页
第2页 / 共27页


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

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服