VisualBasic.NET程序设计教程(下)ppt.ppt_第1页
VisualBasic.NET程序设计教程(下)ppt.ppt_第2页
VisualBasic.NET程序设计教程(下)ppt.ppt_第3页
VisualBasic.NET程序设计教程(下)ppt.ppt_第4页
VisualBasic.NET程序设计教程(下)ppt.ppt_第5页
已阅读5页,还剩138页未读 继续免费阅读

下载本文档

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

文档简介

VisualBasic NET程序设计教程 下 东北大学软件学院 第四章VisualBasic NET面向对象技术 东北大学软件学院 第四章VisualBasic NET面向对象技术 3 4 1类和对象4 2属性和方法4 3封装 继承 多态4 4接口 主要内容 第四章VisualBasic NET面向对象技术 4 4 1类和对象 类就是对具有相同数据和相同操作的一组相似对象的定义 也即是对具有相同属性和行为的一组相似对象的抽象 类是用来创建对象的模板 它包含所创建对象的状态描述和方法定义 而对象只是类的一个实例 对象是客观世界中的事物或人们头脑中的各种概念在计算机程序中的抽象表示 或者说 是现实世界中个体的数据抽象模型 是面向对象程序设计的基本元素 每个对象都有三个共同的特点 它们都有自己的名字 以区别其他对象 它们都有自己的状态 如球有自己的质地 颜色和大 它们都有自己的行为 如球可以滚动 停止或旋转 第四章VisualBasic NET面向对象技术 5 类的性质抽象性封装性继承性多态性 4 1类和对象 第四章VisualBasic NET面向对象技术 6 如何创建类 使用Class语句 Public Private Protected Friend ProtectedFriend Shadows MustInherit NotInheritable Class类名 Inherits基类名 Implements接口名 语句 EndClass 4 1类和对象 第四章VisualBasic NET面向对象技术 7 例 声明只含有公有变量的类Customer PublicClassCustomerPublicNameAsStringPublicAddressAsStringPublicPhoneNumberAsStringEndClass 4 1类和对象 第四章VisualBasic NET面向对象技术 8 在哪创建类呢 放在窗体或模块文件中放在项目内的单独文件中放在单独的项目中 4 1类和对象 第四章VisualBasic NET面向对象技术 9 创建对象也称为实例化对象 与声明简单变量不同 需要添加New关键字才能创建新对象 Dim对象名AsNew类名 Dim对象名As类名 New类名 DimxAsNewCustomerDimxAsCustomer NewCustomer 4 1类和对象 第四章VisualBasic NET面向对象技术 10 4 2属性和方法 如何创建属性 使用Property语句创建属性 因为属性可以有返回值 也可以赋值 创建属性的关键就在于如何实现返回属性值和给属性赋值 所以分别使用Get语句和Set语句实现 Default Public Private Protected Friend ProtectedFriend ReadOnly WriteOnly Property属性名 ByVal参数列表 As类型 Get 语句块 EndGetSet ByValValueAs类型 语句块 EndSetEndClass 第四章VisualBasic NET面向对象技术 11 属性举例 PublicClassOrderPrivatemCostAsDoublePublicmQuantityAsIntegerPublicPropertyCost AsDoubleGetReturnmCostEndGetSet ByValValueAsDouble mCost ValueEndSetEndPropertyEndClass 4 2属性和方法 第四章VisualBasic NET面向对象技术 12 类和对象包含的内置过程称为方法 向Sub类添加过程或函数就向类添加了一个新方法 如果用Public关键字修饰就是公有的如果用Private关键字修饰就是私有的 只能在类内部使用 4 2属性和方法 第四章VisualBasic NET面向对象技术 13 4 3封装 继承 多态 封装 就是使其代码和数据变为内部的 使他们不再供外部对象访问 除非通过定义良好的接口访问 也被称做数据隐藏 继承 指从其它类派生新类的功能 第四章VisualBasic NET面向对象技术 14 继承的种类 公有继承 用Public关键字修饰 在其范围内没有任何限制 它可以被程序的任何一部分使用 受保护继承 用Protected关键字修饰 当基类成员声明为受保护时 则再该类及其所有派生类中都可以使用它 但再其它地方则不能 私有继承 用Private关键字修饰 它只有在当前类中可以使用 在该类之外则不能访问它 在该类的任何派生类中也不能 换句话 就是停止继承过程 友元继承 用Friend关键字修饰 只可以访问当前程序和同一个程序集中的其它任何地方 4 3封装 继承 多态 第四章VisualBasic NET面向对象技术 15 继承修饰符 MustInherit 不能直接创建MustInherit类对象 他们只能用作派生类的基类 NotInheritable 不允许类用作基类 4 3封装 继承 多态 第四章VisualBasic NET面向对象技术 16 MyBase MyClass与继承使用MyBase可以访问基类中原来版本的方法 换句话说 MyBase提供对当前类中已经重写的基类方法的访问 使用MyClass可以使用其基类中的所有方法 就好像它们是不可重写的方法一样 4 3封装 继承 多态 第四章VisualBasic NET面向对象技术 17 ClassCustomerPublicNameAsStringPublicAddressAsStringPublicCityAsStringPublicStateAsStringPublicZIPAsStringPublicCustomerIDAsIntegerEndClass ClassEmployeePublicNameAsStringPublicAddressAsStringPublicCityAsStringPublicStateAsStringPublicZIPAsStringPublicSalaryAsIntegerEndClass 4 3封装 继承 多态 第四章VisualBasic NET面向对象技术 18 ClassCustomerInheritsPersonPublicCustomerIDAsIntegerEndClass ClassEmployeeInheritsPersonPublicSalaryAsIntegerEndClass 4 3封装 继承 多态 第四章VisualBasic NET面向对象技术 19 Object在继承结构的最端 如果一个类没有明确继承自另一个类 就默认为继承自Object 4 3封装 继承 多态 第四章VisualBasic NET面向对象技术 20 4 3封装 继承 多态 第四章VisualBasic NET面向对象技术 21 抽象类举例 MustInheritClassPersonPublicNameAsStringPublicAddressAsStringPublicCityAsStringPublicStateAsStringPublicZIPAsStringSubPrint Console WriteLine Name Console WriteLine Address Console WriteLine City State ZIP EndSubEndClassClassEmployeeInheritsPersonPublicSalaryAsIntegerEndClass 第四章VisualBasic NET面向对象技术 22 在抽象类中也可以定义抽象方法 抽象方法需要使用关键字MustOverride声明 并且不提供具体实现 如果一个类继承了含有抽象方法的泪 那么就必须提供该方法的实现 或者该方法本身也是抽象方法 4 3封装 继承 多态 第四章VisualBasic NET面向对象技术 23 MustInheritClassPersonPublicNameAsStringPublicAddressAsStringPublicCityAsStringPublicStateAsStringPublicZIPAsStringMustOverrideSubPrintName SubPrint PrintName Console WriteLine Address Console WriteLine City State ZIP EndSubEndClassClassEmployeeInheritsPersonOverridesSubPrintName Console Write Employee Console WriteLine Name EndSubPublicSalaryAsIntegerEndClass 第四章VisualBasic NET面向对象技术 24 覆盖如果派生类中的新方法与基类中方法同名而且参数列表也相同 则派生类中的新方法将覆盖 又称为重写 基类中同名方法 在这种情况下 当在派生类中或通过派生类的对象直接访问该方法名时 被访问的只能是派生类中的同名方法 这称为同名覆盖 又叫同名重写 4 3封装 继承 多态 第四章VisualBasic NET面向对象技术 25 第四章VisualBasic NET面向对象技术 26 例 建立一个基类myBaseClass 声明一个允许覆盖的方法ShowInfo 再建立该类的一个派生类mySubClass 然后建立mySubClass类的对象 并在该对象中调用基类和子类中的方法 4 3封装 继承 多态 第一步 建立一个 Windows应用程序 项目 第二步 执行 项目 添加类 菜单命令 建立一个名为myBaseClass的基类 在其中定义一个可覆盖的方法ShowInfo 第四章VisualBasic NET面向对象技术 27 第三步 执行 项目 添加类 菜单命令 建立一个名为mySubClass的子类 在其中定义一个与父类完全同名的方法ShowInfo 它覆盖基类中的同名方法 代码如下 4 3封装 继承 多态 第四章VisualBasic NET面向对象技术 28 第四步 在窗体上建立两个按钮 并分别编写单击事件代码如下 4 3封装 继承 多态 第四章VisualBasic NET面向对象技术 29 多态性 这种功能能够使相同的代码操作不同类型的对象 多态性的两种方法 基于继承的多态性基于接口的多态性 4 3封装 继承 多态 第四章VisualBasic NET面向对象技术 30 第四章VisualBasic NET面向对象技术 31 4 4接口 接口 是一套类成员规范 而不是实现 它只是一种规范 当实现接口时 要编写每个类成员定义 例 定义一个Person接口 包括SetName和GetName方法 以存储和返回人员名称 PublicInterfacePersonSubSetName ByValNameAsString FunctionGetName AsStringEndInterface 第四章VisualBasic NET面向对象技术 32 当实现接口时需要使用Implement关键字 具体实现如下 PublicClassNeighborImplementsPersonDimInternalNameAsStringSubSetName ByValNameAsString ImplementsPerson SetNameInternalName NameEndSubFunctionGetName AsStringImplementsPerson GetNameReturnInternalNameEndFunctionEndClass 4 4接口 第四章VisualBasic NET面向对象技术 33 现在可以创建Neighbor类对象 PrivateSubButton1 Click ByValsenderAsSystem Object ByValeAsSystem EventArgs HandlesButton1 ClickDimobjNeighborAsNewNeighborobjNeighbor SetName Jill TextBox1 Text Yourneighboris objNeighbor GetName EndSub 4 4接口 第四章VisualBasic NET面向对象技术 34 CreatinganInterfacenamedTestPublicInterfaceTest SpecifyingtwomethodsintheinterfaceSubDisp FunctionMultiply AsDoubleEndInterfacePublicClassOneImplementsTestPubliciAsDouble 12PublicjAsDouble 12 17PublicSubDisp ImplementsTest DispConsole WriteLine sumofi j i j EndSubPublicFunctionMultiply AsDoubleImplementsTest MultiplyConsole WriteLine Multiplyofi j i j EndFunctionEndClass ModuleMoudule1SubMain DimOneObjAsNewOneOneObj Disp OneObj Multiply EndSubEndModule 第四章VisualBasic NET面向对象技术 35 例 利用接口实现多态性 调用计算学生期末和平时成绩的同名方法 4 4接口 第一步 启动VB NET 建立一个 Windows应用程序 项目 第二步 执行 项目 添加模块 菜单命令 建立一个模块文件Module1 vb 在模块代码窗口中定义一个接口MyInterface 声明2个成员 分别为属性stuName Function过程GetScores 代码如下 第四章VisualBasic NET面向对象技术 36 第三步 在模块Module1中定义实现MyInterface接口的类 代码如下 4 4接口 第四章VisualBasic NET面向对象技术 37 第四步 在模块Module1中再定义另一个实现MyInterface接口的类 代码如下 4 4接口 第四章VisualBasic NET面向对象技术 38 第五步 在窗体代码中 建立一个通用过程如下 4 4接口 第六步 在窗体上建立一个按钮 并编写单击事件代码如下 EndofChapter 第五章VisualBasic NET文件 东北大学软件学院 第四章VisualBasic NET面向对象技术 41 主要内容 5 1Visual NET文件概述5 2System IO模型5 3MyComputer System对象5 4处理文件系统事件 第四章VisualBasic NET面向对象技术 42 5 1Visual NET文件概述 文件的结构文件的类型VisualBasic NET文件访问方法 第四章VisualBasic NET面向对象技术 43 文件的结构 三种常用的文件结构字节的序列记录的序列树型结构 数据只是简单的字节序列 文件系统不负责解释其意义 记录的序列 记录和记录间可用空格 回车等分隔符分开 由记录构成的树 记录间通过指针相互连接 第四章VisualBasic NET面向对象技术 44 程序文件和数据文件程序文件 存储计算机程序的源代码或可执行程序 如 exe vb c h等 数据文件 存储普通的用户数据 如实验报告 成绩等普通文件和设备文件普通文件 代表存储在外存上的有数据集 可以是数据文件也可以是程序文件设备文件 代表的是与主机相联的各种外部设备 如显示器 打印机 键盘等 文件的结构 第四章VisualBasic NET面向对象技术 45 文件的类型 文本文件和二进制文件文本文件 每一个字节存放的是一个ASCII码 代表一个字符二进制文件 内存中的数据原样输出到文件中顺序文件和随机文件顺序文件 按顺序访问方式建立的文件 记录一般是变长记录二进制文件 记录是定长的 只要知道记录在文件中的顺序 就可以知道记录在文件中的位置 第四章VisualBasic NET面向对象技术 46 VisualBasic NET文件访问方法 FileSystem模块提供一些用于直接访问文件语句和方法System IO模型提供了一个面向对象的方法访问文件系统My Computer FileSystem对象用来取代FileSystem模块 用于提高应用程序开发的生产性和程序执行的效率 第四章VisualBasic NET面向对象技术 47 5 2System IO模型 System IO模型的文件读写基于流的概念流可以抽象地看作一个字节序列 有起始端和末尾端 并且利用游标指示当前的读写位置 第四章VisualBasic NET面向对象技术 48 在VB NET中 很多数据都可以看作流 这些数据可以来自内存 来自文件或网络可以通过Read Write Seek等基本操作访问流所代表的数据Read 从游标所在位置起读取流的数据并存放到指定的数据结构中Write 操作将数据从游标所在位置起写入流中Seek 操作将游标移动到流的指定位置 5 2System IO模型 第四章VisualBasic NET面向对象技术 49 Stream类 MustInherit的抽象类用Stream类的不同子类代表不同种类流 第四章VisualBasic NET面向对象技术 50 其他常用类 第四章VisualBasic NET面向对象技术 51 文件的打开与关闭 要打开一个文件 只要根据该文件的路径创建一个FileStream类的实例对象即可 Dim对象名 NewFileStream 文件名 打开模式 读写权限 DimFile1NewFileStream C Text txt FileMode OpenOrCreate FileAccess ReadWrite 第四章VisualBasic NET面向对象技术 52 文件的打开与关闭 FileMode枚举类型 第四章VisualBasic NET面向对象技术 53 FileAccess枚举类型 文件的打开与关闭 第四章VisualBasic NET面向对象技术 54 可以通过调用FileStream对象的Close方法关闭与FileStream对象对应的文件Seek方法和Positon属性都可用来移动游标位置SeekPosition File1 Close DimoffsetAsInteger 偏移量DimoriginAsSeekOrigin 参照点DimreturnValueAsLongreturnValue Instance Seek origin offset value instance Position 获取游标位置instance Position value 设置游标位置 文件的打开与关闭 第四章VisualBasic NET面向对象技术 55 SeekOrigin枚举类型 Encoding的Static属性 第四章VisualBasic NET面向对象技术 56 文本文件的读写操作 可以使用StreamReader和StreamWriter类读写文本文件 Dim对象名AsNewStreamReader FileStream对象 编码方式 Dim对象名AsNewStreamWriter FileStream对象 编码方式 1 创建StreamReader StreamWriter对象 第四章VisualBasic NET面向对象技术 57 Dim对象名AsNewStreamReader 文件名 编码方式 Dim对象名AsNewStreamWriter 文件名 True False 编码方式 1 创建StreamReader StreamWriter对象 文本文件的读写操作 第四章VisualBasic NET面向对象技术 58 DimreturnValueAsIntegerreturnValue instance Read DimbufferAsChar 存放读取字符串的存储空间DimindexAsInteger 存储空间中开始存放的位置DimcountAsInteger 读取的字符的个数DimreturnValueAsInteger 用于存放返回值returnValue instance Read buffer index count DimreturnValueAsStringreturnValue instance ReadLine DimreturnValueAsStringreturnValue instance ReadToEnd 2 读取文本文件数据 DimreturnValueAsIntegerreturnValue instance Peek IfNotinstance EndOfStreamThen 如果不是文件末尾 读数据EndIf Instance Close 第四章VisualBasic NET面向对象技术 59 Example DimonecharAsCharIfreader peek 1thenonechar Convert ToChar reader Read TextBox1 Text onecharEndif 点击按钮 ReadaCharacter 读取一个字符 点击按钮 ReadaLine 读取一行字符 DimlinestrAsStringIfreader peek 1thenlinestr reader ReadLineTextBox1 Text linestr Chr 13 Chr 10 追加回车符号Endif DimallstrAsStringallstr reader ReadToEndTextBox1 Text allstr 点击按钮 ReadtoEnd 读取从游标当前位置到文件末尾的所有字符 第四章VisualBasic NET面向对象技术 60 3 向文本文件写入数据 将各种基本数据类型数据以文本形式写入文件DimvalueAsDoubleinstance Write value DimbufferAsChar 定义一个字符数组DimindexAsIntegerDimcountAsInteger 将字符数组内的所有字符写入文件instance Write buffer 将字符数组中从index开始的count个字符写入文件instance Write buffer index count DimvalueAsStringinstance Write value 将字符串写入文件 instance Flush instance WriteLine 向文件写入一个行结束符 其他重载方法与Write类似 区别是WriteLine方法多写入一个行结束符DimvalueAsStringinstance Write value 将String 行结束符写入文件 instance Close 第四章VisualBasic NET面向对象技术 61 Example 点击按钮 OpenFile 选择要打开的文件 读取全部内容 OpenFileDialog1 ShowDialog 选择要打开的文件名Tryfile1 NewFileStream OpenFileDialog1 FileName FileMode OpenOrCreate FileAccess ReadWrite CatchexAsSystem IO IOExceptionMsgBox cannotopenfile OpenFileDialog1 FileNameExitSubEndTryDimfreaderAsNewStreamReader file1 创建StreamReader对象TextBox1 Text freader ReadToEnd 读取文件从游标当前位置到末尾的内容 第四章VisualBasic NET面向对象技术 62 DimfwriterAsNewStreamWriter file1 创建StreamWriter对象 以文本形式写入姓名 字符串 并换行fwriter WriteLine Name TextBox2 Text 以文本形式写入年龄 整形 并换行fwriter WriteLine age 以文本形式写入性别 字符串 并换行fwriter WriteLine Sex ComboBox1 Text 以文本形式写入电话 字符串 fwriter Write Phone TextBox4 Text 以文本形式写入电话 字符串 fwriter WriteLine 换行 以文本形式写入Email 字符串 fwriter WriteLine Email TextBox5 Text fwriter WriteLine 换行fwriter WriteLine 写入一个空行 作为与一组输入的分隔fwriter Flush 将缓冲区内的数据全部写入文件RaiseEventrefre 唤起refre事件 点击按钮 WritetoFile 选择要打开的文件 读取全部内容 第四章VisualBasic NET面向对象技术 63 发生事件 refre 时 从文件中重新读取全部内容 并刷新显示文件内容的文本框 file1 Seek 0 SeekOrigin Begin 将游标移至文件开始端 创建StreamReader对象DimfreaderAsNewStreamReader file1 TextBox1 Clear 读取文件从游标当前位置到末尾的全部内容TextBox1 Text freader ReadToEnd 第四章VisualBasic NET面向对象技术 64 二进制文件的读写操作 可以使用BinaryReader和BinaryWriter类读写二进制文件 1 创建BinaryReader BinaryWriter对象 Dim对象名AsNewBinaryReader FileStream对象 编码方式 Dim对象名AsNewBinaryWriter FileStream对象 编码方式 DimFile2NewFileStream C binary txt FileMode OpenOrCreate FileAccess ReadWrite DimFile2ReaderAsNewBinaryReader File2 DimFile2WriterAsNewBinaryWriter File2 第四章VisualBasic NET面向对象技术 65 2 读取二进制文件数据 DimreturnValueAsIntegerreturnValue instance Read 读一个字符 DimbufferAsByte 字节数组 用于存放读取的数据DimindexAsInteger 开始存放的位置 在字节数组中 DimcountAsInteger 指定读取的字节数DimreturnValueAsInteger 用于存放实际读取的字节数 读取count个字节 从buffer中index处开始存放returnValue instance Read buffer index count DimbufferAsChar 用于存放读取字符的字符数组DimindexAsInteger 开始存放的位置 在字符数组中 DimcountAsInteger 指定读取的字符数DimreturnValueAsInteger 用于存放实际读取的字符数 读取count个字符 从buffer中index处开始存放returnValue instance Read buffer index count 读取各种基本数据类型DimbovalueAsBooleanbovalue instance ReadBooleanDimbvalueAsBytebvalue instance ReadByte 第四章VisualBasic NET面向对象技术 66 2 读取二进制文件数据 DimcountAsIntegerDimreturnValueAsChar returnValue instance ReadChars count 读count个字符 DimcountAsIntegerDimreturnValueAsByte returnValue instance ReadBytes count 读count个字节 DimreturnValueAsStringreturnValue instance ReadString 读字符串 DimreturnValueAsIntegerreturnValue instance PeekChar instance Close 第四章VisualBasic NET面向对象技术 67 3 向二进制文件写入数据 将各种基本数据类型数据以二进制形式写入文件DimvalueAsDoubleInstance Write value DimbufferAsByte 定义一个字节数组DimindexAsIntegerDimcountAsIntegerinstance Write buffer 将字节数组内的所有字节写入文件 将字节数组中从index开始的count个字节写入文件Instance Write buffer index count DimvalueAsStringInstance Write value 将字符串写入文件 Instance Flush DimoffsetAsInteger 用于指定偏移量DimoriginAsSeekOrigin 参照点 SeekOrigin枚举类型DimreturnValueAsLong 接收返回值 游标位置 将游标移动到距参照点origin的偏移量为offset的位置returnValue instance Seek offset origin Instance Close 第四章VisualBasic NET面向对象技术 68 Example 点击按钮 WritetoFile 时 以二进制形式将记录写入文件 file1 Seek 0 SeekOrigin End 将游标移动到文件末尾Dimsnum 16 AsCharDimsname 20 AsCharDimsex 10 AsChar 将输入的学号 姓名 性别信息复制到对应字符数组TextBox3 Text CopyTo 0 snum 0 TextBox3 Text Length TextBox4 Text CopyTo 0 sname 0 TextBox4 Text Length ComboBox1 Text CopyTo 0 sex 0 ComboBox1 Text Length 第四章VisualBasic NET面向对象技术 69 bwriter Write snum 0 16 将16个字符 学号 写入文件bwriter Write sname 0 20 将20个字符 姓名 写入文件bwriter Write Val TextBox5 Text 将Double型数据 年龄 写入文件bwriter Write sex 0 8 将8个字符 学号 写入文件bwriter Write Val TextBox6 Text 写入Double型数据 成绩 bwriter Flush 将缓存内数据写入文件流 清空缓存RaiseEventrefre 唤起事件refre 发生事件 refre 时 分别以文本形式和二进制形式读取文件全部内容 并刷新显示文件内容的文本框 file1 Seek 0 SeekOrigin Begin 将游标移至文件开始端TextBox1 Clear 清空Textbox1 读取文件从游标当前位置到末尾的全部内容TextBox1 Text treader ReadToEndfile1 Seek 0 SeekOrigin Begin 将游标移至文件开始端 第四章VisualBasic NET面向对象技术 70 TextBox2 Clear 清空Textbox2DoWhile file1 Length file1 Position 60TextBox2 Text breader ReadChars 16 读取16个字符 学号 TextBox2 Text vbCrLfTextBox2 Text breader ReadChars 20 读取20个字符 姓名 TextBox2 Text vbCrLf 读取Double型数值 年龄 TextBox2 Text Str breader ReadDouble TextBox2 Text vbCrLf 读取8个字符 性别 TextBox2 Text breader ReadChars 8 TextBox2 Text vbCrLf 读取16个字符 学号 TextBox2 Text Str breader ReadDouble TextBox2 Text vbCrLf 在TextBox2中区分相邻记录TextBox2 Text vbCrLfLoop 第四章VisualBasic NET面向对象技术 71 5 3My Computer System对象 可以利用My Computer FileSystem对象的方法直接访问文件系统可以读写文本文件和二进制文件还可以做其他一些文件和目录操作 包括创建 删除文件或目录 移动文件或目录 复制文件或目录 文件或目录的重命名等 第四章VisualBasic NET面向对象技术 72 My的顶层对象 第四章VisualBasic NET面向对象技术 73 文件的读写操作 文本文件的读取用ReadAllText方法一次将文件全部内容以字符串形式读出读以记录形式组织起来的文本文件用OpenTexFileReader方法生成一个StreamReader对象 然后通过StreamReader对象以文本形式读取文件内容 第四章VisualBasic NET面向对象技术 74 DimfileContentsAsStringfileContents My Computer FileSystem ReadAllText C text txt MsgBox fileContents ReadAllText方法 ReadAllText FileName Encoding 用于指定写数据的文本文件的路径名 指定文本文件的编码方式 DimfileContentsAsStringfileContents My Computer FileSystem ReadAllText C text txt System Text Encoding UTF32 MsgBox fileContents 如果读取的文本文件采用了拓展的编码方式 在调用ReadAllTex方法时需要给出文本文件的编码方式 第四章VisualBasic NET面向对象技术 75 读以记录形式组织起来的文本文件 TextFieldParser对象 用于按一次一记录的方式读取用分隔符区分相邻记录的文本文件或定长记录的文本文件 1 创建一个TextFieldParser对象 UsingDRReaderAsNewMicrosoft VisualBasic FileIO TextFieldParser C test txt DRReader TextFieldType FileIO FieldType DelimitedDRReader SetDelimiters DRReader TextFieldType Microsoft VisualBasic FileIO FieldType FixedWidthDRReader SetFieldWidths 5 10 11 6 第四章VisualBasic NET面向对象技术 76 2 按照一次一记录的方式利用循环控制结构读取文件数据 DimcurrentRowAsString 存放读取的记录WhileNotDRReader EndOfDataTrycurrentRow DRReader ReadFields 读取一条记录DimcurrentFieldAsStringForEachcurrentFieldIncurrentRow 遍历记录的每一个域MsgBox currentField NextCatchexAsMicrosoft VisualBasic FileIO MalformedLineExceptionMsgBox Line ex Message isnotvalidandwillbeskipped EndTryEndWhile 第四章VisualBasic NET面向对象技术 77 文件的读写操作 写文本文件利用WriteAllText方法将字符串数据写入文件利用OpenTexFileWriter方法生成一个StreamWriter对象 然后通过这个StreamWriter对象向文本文件写入数据 第四章VisualBasic NET面向对象技术 78 用于指定要写数据的文本文件的路径名 ForEachfoundFileAsString InMy Computer FileSystem GetFiles C Work foundFile foundFile vbCrLfMy Computer FileSystem WriteAllText C Work FileList txt foundFile True Next WriteAllText方法 WriteAllText fileName string True False encoding True 将写入的数据追加到文件的末尾 False 写入数据将覆盖文件中原有的数据 第四章VisualBasic NET面向对象技术 79 文件的读写操作 二进制文件的读写操作ReadAllBytes方法用于读取二进制文件的全部内容WriteAllBytes方法用于将字节数组以二进制形式写入文件 ReadAllBytes filename WriteAllBytes fileName byteArray True False 用于指定读写的二进制文件的路径名 字节数组 是要写入文件的数据 Dimjpgdata AsByteJpgdata My Computer FileSystem ReadAllBytes C temp trees jpg My Computer FileSystem WriteAllBytes C temp1 trees jpg True 第四章VisualBasic NET面向对象技术 80 创建目录删除目录 其他文件操作 My Computer FileSystem CreateDirectory directory My Computer FileSystem DeleteDirectory directory onDirectoryNotEmpty My Computer FileSystem DeleteDirectory directory showUI recycle My Computer FileSystem DeleteDirectory directory showUI recycle onUserCancel 第四章VisualBasic NET面向对象技术 81 复制文件 CopyFile sourceFileName destinationFileName CopyFile sourceFileName destinationFileName overwrite CopyFile sourceFileName destinationFileName showUI CopyFile sourceFileName destinationFileName showUI onUserCancel 其他文件操作 第四章VisualBasic NET面向对象技术 82 其他操作还包括 复制目录 CopyDirectory获取目录包含的文件或子目录 GetFiles移动文件或目录 MoveFile MoveDirectory判断文件和目录是否存在 FileExists DirectoryExists 其他文件操作 第四章VisualBasic NET面向对象技术 83 5 4处理文件系统事件 VB NET提供的FileSystemWatcher组件可以用来监视和处理文件系统发生的更新事件可以指定使用FileSystmWatcher监视的目录和文件的范围 以及更新操作的类型生成FileStyemWatcher组件的实例对生成的FileSytemWatcher实例进行设置 指定用于处理文件更新事件的事件处理函数 第四章VisualBasic NET面向对象技术 84 创建FileSystemWatcher实例 利用工具箱创建从工具箱的Components选项卡中拖出FileSytemWather放到应用程序窗体上直接编写代码创建 DimmyWatcherAs NewSystem IO FileSystemWatcher 第四章VisualBasic NET面向对象技术 85 设置FileStreamWatcher 设置Path属性指定监视的目录设置Filter属性限定监视的范围设置NotifyFilter属性指定监视的更新类型 DimMyWatcherAsNewSystem IO FileSystemWatcher MyWatcher Path C MyWacher Filter ppt MyWatcher IncludeSubdirectories FalseMyWatcher NotifyFilter System IO NotifyFilters LastAccess OrSystem IO NotifyFilters Size 第四章VisualBasic NET面向对象技术 86 NotifyFilters枚举类型 设置FileStreamWatcher 第四章VisualBasic NET面向对象技术 87 FileSystemWacher事件类型 设置FileStreamWatcher 第四章VisualBasic NET面向对象技术 88 设置FileStreamWatcher 指定事件处理函数创建事件处理函数 通过代码设计器直接编写设置EnableRaisingEvents属性 PrivateSubmyWatcher Changed ByValsenderAs System Object ByValeAsSystem IO FileSystemEventArgs DimpathChangedAsStringpathChanged e FullPathEndSubAddHandlermyWatcher Changed NewSystem IO FileSystemEventHandler AddressOfMe myWatcher Cha

温馨提示

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

评论

0/150

提交评论