VB NET文件操作ppt课件.ppt_第1页
VB NET文件操作ppt课件.ppt_第2页
VB NET文件操作ppt课件.ppt_第3页
VB NET文件操作ppt课件.ppt_第4页
VB NET文件操作ppt课件.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

第九章文件操作 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模型来实现的 知识点1System 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 知识点1Directory类 对文件夹的操作主要利用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判断文件夹是否存在例如 IfDirectory Exists E VBNET thenDirectory Delete E VBNET True Move移动文件夹该方法是移动指定整个文件夹到同一磁盘中的另一个位置 并具有改名功能 例如 将E盘下的VBNET文件夹移动到E盘Program文件夹下 并改名为VB 语句如下 Directory Move E VBNET E program VB 14 GetLogicalDrivers获取逻辑盘符该方法功能是返回一个字符串数组 为当前计算机中所有逻辑驱动器名 每个驱动器名是形如 C 的字符串 格式如下 Directory GetLogicalDrivers GetDirectories获取文件夹下的子文件夹GetFiles获取文件夹下的文件例如 DimFileName AsStringFileName Directory GetFiles E VBNET TXT SearchOption AllDirectories 表示在E盘下的VBNET文件夹下及其子文件夹下查找扩展名为TXT的文件 15 任务2设计一个窗体 显示指定文件夹中所有文件的文件名 创建时间和文件属性 知识点2File类File类主要执行与文件有关的操作 包括文件的创建 移动 删除和打开等 所有的File方法都是静态的 无需类的实例 AppendAllText追加文本文件例如将文本 VB NET 添加到E VBNET ABC TXT文件中 语句如下 File AppendAllText E VBNET ABC 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 VBNET myfile dat Delete删除文件例如删除E盘VBNET文件夹下的myfile dat文件 File Delete E VBNET myfile dat 17 Exists判断文件是否存在以下语句判断E盘VBNET文件夹下是否存在myfile dat文件 如果存在则删除 IfFile Exists E VBNET myfile dat thenFile Delete E VBNET myfile dat EndIfMove移动文件例如 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 知识点1Stream类 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流将文本显示在窗体多行文本框中 并修改其内容后写入到磁盘文件中 知识点2FileStream类FileStream类对文件系统上的文件执行读取 写入 打开和关闭操作 并对其他与文件相关的操作系统句柄执行操作 如管道 标准输入和标准输出 22 用FileStream类创建FileStream流对象方法的语法格式如下 Dim对象名AsNewFileStream 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对象 读取文本文件内容显示在文本框中 修改其内

温馨提示

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

评论

0/150

提交评论