VB第8章文件操作.ppt

上传人:小飞机 文档编号:5451980 上传时间:2023-07-08 格式:PPT 页数:72 大小:815.50KB
返回 下载 相关 举报
VB第8章文件操作.ppt_第1页
第1页 / 共72页
VB第8章文件操作.ppt_第2页
第2页 / 共72页
VB第8章文件操作.ppt_第3页
第3页 / 共72页
VB第8章文件操作.ppt_第4页
第4页 / 共72页
VB第8章文件操作.ppt_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《VB第8章文件操作.ppt》由会员分享,可在线阅读,更多相关《VB第8章文件操作.ppt(72页珍藏版)》请在三一办公上搜索。

1、第8章 文 件 操 作,8.1 文件IO流模型,8.2 文件夹和文件操作,8.3 文件读写操作,8.1 文件IO流模型,8.1.1 System.IO名称空间的资源System.IO模型中的资源由System.IO名称空间提供。该名称空间含有对数据流和文件进行同步或异步读写的类、结构和枚举类型,表8.1、表8.2、表8.3分别列出了System.IO名称空间提供的部分常用的类、结构和枚举类型。,8.1.2 System.IO名称空间的功能,System.IO名称空间提供如下功能(括号中是提供相应功能的类):(1)建立、删除、管理文件和文件夹(File和Directory)。(2)监控文件和文件

2、夹的访问操作(FileSystemWatcher)。(3)对流进行单字节字符或字节块的读/写操作(SystemReader和SystemWriter)。(4)对流进行多字节字符的读/写操作(SystemReader和SystemWriter)。(5)对流进行字符的读/写操作(SystemReader和SystemWriter)。(6)对字符串进行字符的读/写操作,并允许把字符串作为字符流处理(StringReader和StringWriter)。(7)从一个流中读取数据类型和对象,或将数据类型和对象写入流中(BinaryReader和BinaryWriter)。,8.1.2 System.IO

3、名称空间的功能,(8)文件的随机访问(FileStream)。(9)系统性能优化(MemoryStream和BufferedStream)。(10)枚举文件或文件夹的属性(FileAccess、FileMode、FileShare、FileAttributes、DirectoryAttributes)。(11)监控文件或文件夹可能的改变(WatcherChangeTypes)。(12)枚举文件或文件夹可能的改变(ChangedFilters)。(13)指定监控的文件或文件夹(WatcherTarget)。(14)指定文件的相对位置(SeekOrigin)。,8.2 文件夹和文件操作,8.2.1

4、 文件夹操作对文件夹操作主要利用Directory和DirectoryInfo两个类来实现,它们都是System.IO名称空间的成员,因此在使用这两个类之前,需要先引入System.IO名称空间,引入的语句如下:Imports System.IO 引入System.IO名称空间。1Directory类1)CreateDirectory方法CreateDirectory方法的功能是建立一个新的文件夹,同时返回一个包括新建文件夹信息的DirectoryInfo对象(DirectoryInfo对象在本节后面介绍),调用的语法格式如下:Directory.CreateDirectory(path)例如

5、,在C盘根文件夹中创建一个名为temp的子文件夹,方法如下:Directory.CreateDirectory(C:temp)CreateDirectory方法还可以一次建立多级文件夹,示例如下:Directory.CreateDirectory(C:dir1dir2dir3),8.2.1 文件夹操作,2)Delete方法Delete方法的功能是删除指定文件夹及其中的所有文件和子文件夹,调用的语法格式如下:Directory.Delete(path,force)例如,删除C盘根文件夹中的名为temp的空文件夹,方法如下:Directory.Delete(C:temp)若temp文件夹中没有任何

6、文件或子文件夹,即可成功删除,否则将产生异常。如要删除含有子文件夹的文件夹,应使用带force参数的方法,示例如下:Directory.Delete(C:temp,True),8.2.1 文件夹操作,3)Exists方法Exists方法的功能是判断指定的文件夹是否存在,若存在则返回一个逻辑值True;否则返回False。调用的语法格式如下:Directory.Exists(path)如果指定的文件夹不存在,Directory类的很多方法会失败,因此在做文件夹操作前,可以先用Exists方法确定文件夹是否存在,示例如下:If Directory.Exists(C:temp)then Direct

7、ory.Delete(C:temp,True),8.2.1 文件夹操作,4)Move方法Move方法的功能是移动指定的整个文件夹到同一个磁盘中的另外一个位置。Move方法具有改名功能,即将源文件夹移动到目标文件夹指定的位置,但不是移动到目标文件夹中,而是将源文件夹名改为目标文件夹名。调用它的语法格式如下:Directory.Move(source,destination)例如,将C盘根文件夹中名为temp的子文件夹移动到“C:”中,并改名为dir1,方法如下:Directory.Move(C:temp,C:dir1),8.2.1 文件夹操作,5)GetLogicalDrives方法GetLog

8、icalDrives方法的功能是返回一个字符串数组,其中包括当前计算机中所有逻辑驱动器名,每个驱动器名是形如“C:”的字符串。调用的语法格式如下:Directory.GetLogicalDrives()例如,下面示例获得本机所有逻辑驱动器的名字,将其存放到字符串数组myDrv中,并将数组中所有元素放到一个组合框ComboBox1中:Dim myDrv(),x As String myDrv=Directory.GetLogicalDrives()For Each x In myDrvComboBox1.Items.Add(x)Next x,8.2.1 文件夹操作,6)GetDirectorie

9、s方法GetDirectories方法的功能是返回一个字符串数组,其中包括指定文件夹的所有子文件夹的完整路径名,不包括子文件夹中的子文件夹名。调用的语法格式如下:Directory.GetDirectories(path,pattern)例如,下面示例获得C盘dir1文件夹的所有子文件夹的名字,将其存放到字符串数组myDrv中:Dim myDrv()As String myDrv=Directory.GetDirectories(C:dir1)GetDirectories方法还可以使用通配符,获得符合条件的子文件夹名。例如,要获得C:WinNT下所有名字中包含“system”的子文件夹名,使用

10、下面的语句:Dim myDrv()As String myDrv=Directory.GetDirectories(C:WinNT,*system*),8.2.1 文件夹操作,7)GetFiles方法GetFiles方法的功能是返回一个字符串数组,其中包括指定文件夹的所有文件的完整路径名,但不包括子文件夹中的文件名。调用的语法格式如下:Directory.GetFiles(path,pattern)例如,下面示例获得C盘dir1文件夹中的所有文件的名字,将其存放到字符串数组myFiles中:Dim myFiles()As String myFiles=Directory.GetFiles(C:

11、dir1)GetFiles方法还可以使用通配符,获得符合条件的文件名。例如,要获得C:WinNT下所有扩展名为ini的文件名,使用下面的语句:Dim myFiles()As String myFiles=Directory.GetFiles(C:WinNT,*.ini),8.2.1 文件夹操作,8)GetFileSystemEntries方法GetFileSystemEntries方法的功能是返回一个字符串数组,其中包括指定文件夹的所有子文件夹和文件的完整路径名,但不包括子文件夹中的文件夹和文件名。该方法实际是GetDirectories和GetFiles方法返回的数组的总和。调用的语法格式如

12、下:Directory.GetFileSystemEntries(path,pattern)例如,下面示例获得C盘dir1文件夹中所有文件夹和文件的名字,将其存放到字符串数组myFiles中:Dim myFiles()As String myFiles=Directory.GetFileSystemEntries(C:dir1),8.2.1 文件夹操作,GetFileSystemEntries方法也可以使用通配符,获得符合条件的文件夹和文件名。例如,要获得C:WinNT下所有包含“system”的文件夹和文件名,使用下面的语句:Dim myFiles()As String myFiles=Di

13、rectory.GetFileSystemEntries(C WinNT,*system*)若要列举C:WinNT下所有的文件夹和文件名,可以使用下面的语句:Dim myFiles()As String For Each myFiles In Directory.GetFileSystemEntries(C:WinNT)Console.WriteLine(myFiles)在输出窗口显示文件夹或文件名。Next,8.2.1 文件夹操作,除了前面介绍的方法,Directory对象还有其他的一些方法,见表8.4,读者可查阅资料或在线帮助,了解它们的功能和用法。,8.2.1 文件夹操作,2Direct

14、oryInfo类创建DirectoryInfo对象的一个实例是通过调用它的构造函数来实现的,语法格式如下:Dim 对象名As New DirectoryInfo(path)例如,下面语句创建了一个关于C盘根文件夹的DirectoryInfo对象:Dim di As New DirectoryInfo(C:),8.2.1 文件夹操作,1)CreateSubDirectory方法CreateSubDirectory方法的功能是在当前实例所指定的文件夹下建立一个新文件夹,同时返回一个DirectoryInfo对象来代表新子文件夹,调用的语法格式如下:对象名.CreateSubDirectory(pa

15、th)例如,在C盘根文件夹中创建一个名为temp的子文件夹,示例如下:Dim di As New DirectoryInfo(C:)Di.CreateSubDirectory(temp)CreateSubDirectory方法还可以一次建立多级文件夹,示例如下:Dim di As New DirectoryInfo(C:)Di.CreateSubDirectory(dir1dir2dir3),8.2.1 文件夹操作,2)GetFileSystemInfos方法GetFileSystemInfos方法的功能是返回一个FileSystemInfo对象数组,数组中的每个元素都是当前实例所表示的文件夹

16、中的文件和子文件夹。调用的语法格式如下:对象名.GetFileSystemInfos(pattern)例如,获取C盘根文件夹中所有文件和子文件夹对象,示例如下:Dim di As New DirectoryInfo(C:)Dim itemsInfo()As FileSystemInfoItemsInfo=di.GetFileSystemInfos()GetFileSystemInfos方法还可以使用通配符,获得符合条件的对象。例如,要获得C:WinNT下所有包含“system”的文件夹和文件对象,使用下面的语句:Dim di As New DirectoryInfo(C:WinNT)Dim i

17、temsInfo()As FileSystemInfoItemsInfo=di.GetFileSystemInfos(*system*),8.2.1 文件夹操作,FileSystemInfo对象的常用属性见表8.5。,8.2.1 文件夹操作,如果要区分是文件还是文件夹,可以判断FileSystemInfo对象的Attributes属性是否为文件夹(即是否等于FileAttribute枚举的Directory值),是即为文件夹,否则就是文件。代码如下:Dim di As New DirectoryInfo(C:)Dim i As IntegerDim itemsInfo()As FileSyst

18、emInfoitemsInfo=di.GetFileSystemInfos(*system*)i=1If itemsInfo(i).Attributes And FileAttributes.Directory Then 是文件夹Else 是文件。End If,8.2.2 文件操作,1File类File类提供操作文件的方法,包括复制、移动、打开、关闭文件等方法。File类有些方法的使用与Directory类相同,表8.6列出了相同的方法。,8.2.2 文件操作,1)Create方法Create方法的功能是建立并打开一个新文件,同时返回指向该文件的Stream流对象。调用Create方法的语法格

19、式如下:File.Create(path,bufferSize)例如,在C盘根文件夹中创建一个名为myfile.dat的文件,返回一个名为ss的Stream流对象,方法如下:dim ss As Streamss=File.Create(C:myfile.dat)Create方法还可以在创建文件的同时指定文件的缓冲区大小。例如,在C盘根文件夹中创建一个名为myfile.dat的文件,并指定该文件的缓冲区为4096字节,示例如下:dim ss As Streamss=File.Create(C:myfile.dat,4096),8.2.2 文件操作,在有些情况下,用File类的Create方法创建

20、文件时会发生异常,表8.7列出了各种可能导致异常的类型。,8.2.2 文件操作,2)CreateText方法CreateText方法类似于Create方法,它的功能是建立并打开一个新文本文件,同时返回指向该文件的StreamWriter流对象。StreamWriter对象类似于Stream对象,但它只能用于文本文件的读/写操作,而Stream对象可以用于文本文件和二进制文件的读/写操作。调用CreateText方法的语法格式如下:File.CreateText(path)例如,在C盘根文件夹中创建一个名为myfile.txt的文本文件,并返回一个名为sw的StreamWriter流对象,方法如

21、下:dim sw As StreamWritersw=File.CreateText(C:myfile.txt),8.2.2 文件操作,3)Copy方法Copy方法的功能是复制一个文件到新的位置。调用它的语法格式如下:File.Copy(source,destination,overwrite)例如,将C盘根文件夹中名为myfile.txt的文件复制到D:dir1中,并更名为myfile_bak.txt。若目标文件已存在,则覆盖目标文件,方法如下:File.Copy(C:myfile.txt,D:dir1myfile_bak.txt,True),8.2.2 文件操作,4)Move方法Move方

22、法的功能是将指定的文件移动到新的位置,可以使用它来给文件改名。另外它允许在不同的磁盘上移动文件,这与Directory类的Move 方法不同。调用它的语法格式如下:File.Move(source,destination)例如,将C盘根文件夹中名为myfile.txt的文件移动到D:dir1中,并更名为myfile_new.txt,方法如下:File.Move(C:myfile.txt,D:dir1myfile_new.txt),8.2.2 文件操作,5)Delete方法Delete方法的功能是删除指定的文件,若文件被打开,将产生异常。调用它的语法格式如下:File.Delete(path)例

23、如,删除C盘根文件夹中名为myfile.txt的文件,方法如下:File.Delete(C:myfile.txt),8.2.2 文件操作,6)GetAttributes方法GetAttributes方法的功能是获得指定文件的属性,该方法返回一个FileAttributes对象,该对象包含文件的所有属性,表8.8列出了文件的各种属性。,调用GetAttributes方法的语法格式如下:File.GetAttributes(path),8.2.2 文件操作,7)Open方法Open方法的功能是打开一个已经存在的文件,并返回一个指向该文件的Stream对象。调用它的语法格式如下:File.Open(

24、path,FileMode,AccessMode,ShareMode)其中:(1)path,String类型,代表要打开文件的完整路径,绝对路径和相对路径均可。(2)FileMode,可选项,枚举类型,指定文件的打开方式,取值见表8.9。,8.2.2 文件操作,(3)AccessMode,可选项,枚举类型,指定文件的访问权限,取值见表8.10。,(4)ShareMode,可选项,枚举类型,指定文件的共享方式,取值见表8.11。,8.2.2 文件操作,例如,以只读方式打开C盘根文件夹中名为myfile.txt的文件,方法如下:dim fstream As Streamfstream=File.O

25、pen(“C:myfile.txt”,FileMode.Open,FileAccess.Read)上面的语句要求文件必须存在,若文件不存在,要求能创建该文件并以读/写方式打开C盘根文件夹中名为myfile.txt的文件,方法如下:dim fstream As Streamfstream=File.Open(C:myfile.txt,FileMode.OpenOrCreate,FileAccess.ReadWrite),8.2.2 文件操作,8)OpenRead方法OpenRead方法的功能是以读方式打开一个已经存在的文件,并返回一个指向该文件的Stream对象。若文件不存在或被打开,将产生异常

26、。调用它的语法格式如下:File.OpenRead(path)OpenRead方法等价于用Open方法的Read访问权限方式打开一个已经存在的文件。例如,以读方式打开C盘根文件夹中名为myfile.txt的文件,方法如下:dim fstream As Streamfstream=File.OpenRead(C:myfile.txt),8.2.2 文件操作,9)OpenWrite方法OpenWrite方法的功能是以写方式打开一个已经存在的文件,并返回一个指向该文件的Stream对象。若文件不存在或被打开,将产生异常。调用它的语法格式如下:File.OpenWrite(path)OpenWrite

27、方法等价于用Open方法的Write访问权限方式打开一个已经存在的文件。例如,以写方式打开C盘根文件夹中名为myfile.txt的文件,方法如下:dim fstream As Streamfstream=File.OpenWrite(C:myfile.txt),8.2.2 文件操作,10)AppendText方法AppendText方法的功能是以追加方式打开一个文本文件,可以在这个文件后追加文本,并返回一个指向该文件的StreamWriter对象。若文件不存在,将建立一个新文件并打开。调用它的语法格式如下:File.AppendText(path)例如,以追加方式打开C盘根文件夹中名为myfi

28、le.txt的文本文件,方法如下:dim fsw As StreamWriterfsw=File.AppendText(C:myfile.txt),8.2.2 文件操作,11)OpenText方法OpenText方法的功能是以读方式打开一个已经存在的文本文件,并返回一个指向该文件的StreamReader对象。若文件不存在,将产生异常。调用它的语法格式如下:File.OpenText(path)例如,以读方式打开C盘根文件夹中名为myfile.txt的文本文件,方法如下:dim fsr As StreamReaderfsr=File.OpenText(C:myfile.txt),8.2.2 文

29、件操作,2FileInfo类创建FileInfo对象的一个实例是通过调用它的构造函数来实现的,其语法格式如下:Dim 对象名As New FileInfo(path)例如,下面语句创建了一个关于C盘根文件夹中myFile.txt文件的FileInfo对象:Dim fi As New FileInfo(C:myFile.txt)1)Length属性Length属性返回以字节为单位的文件大小,返回结果为Long类型。File类没有提供类似的属性或方法。2)CreationTime、LastAccessTime、LastWriteTime属性CreationTime属性返回文件建立的时间,LastA

30、ccessTime属性返回文件最后一次访问的时间,LastWriteTime属性返回文件最后一次修改的时间。,8.2.2 文件操作,3)Name、FullName、Extension属性Name属性返回文件名,FullName属性返回完整文件名(包括全路径),Extension属性返回文件的扩展名,3个属性值都是String类型。4)CopyTo和MoveTo方法这两个方法的功能分别是复制和移动当前FileInfo实例所代表的文件,类似于File类的Copy和Move方法。CopyTo方法会返回一个FileInfo对象,代表目标文件。调用的语法格式如下:FileInfo对象名.CopyTo(p

31、ath,force)FileInfo对象名.MoveTo(path),8.2.2 文件操作,5)Directory方法Directory方法返回一个代表文件父目录的DirectoryInfo对象。6)DirectoryName方法DirectoryName方法返回文件父目录的名字字符串。,8.2.3 文件管理控件,VB.NET提供了DriveListBox、DirListBox和FileListBox三个控件,分别用于对驱动器、文件夹和文件的操作。这3个控件并不在标准的控件工具箱中,使用时需要先添加到工具箱中,在工具箱上单击鼠标右键,在弹出的菜单上选择【选择项】,打开如图8.1所示。,8.2.

32、3 文件管理控件,1DriveListBox控件DriveListBox控件主要用于磁盘驱动器的操作,使用该控件可以进行驱动器的切换和选择。DriveListBox控件的常用属性及事件如表8.12所示。,8.2.3 文件管理控件,2DirListBox控件DirListBox控件主要用于显示文件夹列表,它可以对所选择的文件夹进行操作。比如,选择路径和设置当前文件夹。DirListBox控件的常用属性及事件如表8.13所示。,8.2.3 文件管理控件,3FileListBox控件FileListBox控件主要用于显示文件列表,使用该控件可以对所选择的文件进行操作。FileListBox控件的常用

33、属性及事件如表8.14所示。,8.2.4 应用示例,【例8.1】利用DriveListBox、DirListBox、FileListBox这3种控件,使驱动器列表框、文件夹列表框和文件列表框保持联动,并能创建、删除、移动文件和文件夹。1界面设计设置一个驱动器列表框(DriveListBox)、一个文件夹列表框(DirListBox)、一个文件列表框(FileListBox)、2个GroupBox和多个标签(Label)、文本框及命令按钮(Button)。表8.15列出了其主要对象及属性。,8.2.4 应用示例,8.2.4 应用示例,2程序代码设计为了使用File和Directory类所提供的方

34、法,在模块中要先引入System.IO名称空间。引入名称空间System.IOImports System.IO要使驱动器列表框、文件夹列表框和文件列表框保持联动,需分别编写DriveListBox1和DirListBox1的SelectedIndexChanged事件代码,相关程序如下:Private Sub DriveListBox1_SelectedIndexChanged(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles DriveListBox1.SelectedIndexChanged DirList

35、Box1.Path=DriveListBox1.DriveEnd SubPrivate Sub DirListBox1_SelectedIndexChanged(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles DirListBox1.SelectedIndexChanged FileListBox1.Path=DirListBox1.PathEnd Sub,8.2.4 应用示例,要实现创建、删除、移动文件夹操作,需分别编写相应按钮的单击事件代码。创建文件夹程序:Private Sub btnNewDir_Cli

36、ck(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles btnNewDir.Click Dim spath As String spath=DirListBox1.Path If txtNewDirName.Text=Or spath=Then MsgBox(请输入要新建的文件夹名!)Else Directory.CreateDirectory(spath&txtNewDirName.Text)End IfEnd Sub,8.2.4 应用示例,移动文件夹程序。删除文件夹程序:Private Sub btnDelD

37、ir_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles btnDelDir.Click Dim spath As String Dim flg As MsgBoxResult spath=DirListBox1.Path flg=MsgBox(确实要删除&spath&文件夹吗?,MsgBoxStyle.YesNo)If flg=MsgBoxResult.Yes Then Directory.Delete(spath)End IfEnd Sub,8.2.4 应用示例,对文件进行创建、删除、复制、移动操作

38、,需分别编写相应按钮的单击事件代码。创建文件程序:Private Sub btnNewFile_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles btnNewFile.Click Dim spath As String Dim ss As Stream spath=DirListBox1.Path If txtNewFileName.Text=Or spath=Then MsgBox(请输入要新建的文件名!)Else ss=File.Create(spath&txtNewFileName.Text)s

39、s.Close()End IfEnd Sub,8.2.4 应用示例,移动文件程序:Private Sub btnMoveFile_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles btnMoveFile.Click Dim spath As String spath=DirListBox1.Path If FileListBox1.FileName=Then MsgBox(请先选择源文件!)Exit Sub End If If txtDestFileName.Text=Then MsgBox(请输入完

40、整的目标文件名!)Exit Sub End If File.Move(spath&FileListBox1.FileName,txtDestFileName.Text)End Sub,8.2.4 应用示例,复制文件程序:Private Sub btnCopyFile_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles btnCopyFile.Click Dim spath As String spath=DirListBox1.Path If FileListBox1.FileName=Then Msg

41、Box(请先选择源文件!)Exit Sub End If If txtDestFileName.Text=Then MsgBox(请输入完整的目标文件名!)Exit Sub End If File.Copy(spath&FileListBox1.FileName,txtDestFileName.Text)End Sub,8.2.4 应用示例,删除文件程序:Private Sub btnDelFile_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles btnDelFile.Click Dim spath

42、 As String Dim flg As MsgBoxResult spath=FileListBox1.FileName flg=MsgBox(确实要删除&DirListBox1.Path&spath&文件吗?,_ MsgBoxStyle.YesNo)If flg=MsgBoxResult.Yes Then File.Delete(DirListBox1.Path&spath)End IfEnd Sub,8.3 文件读写操作,8.3.1 文件的种类1顺序文件(Sequential File)顺序文件由一系列ASCII码字符格式的文本行组成,每行的长度可以不同,文件中的每个字符都表示一个文本

43、字符或文本格式设置序列(如换行符等)。顺序文件中的数据按顺序排列,数据的顺序与其在文件中出现的顺序相同。2随机文件(Random Access File)随机文件是以随机方式存取的文件,由一组长度相等的记录组成。在随机文件中,记录包含一个或多个字段(Field),字段类型可以不同,每个字段的长度是固定的,使用前须事先定义好。,8.3.1 文件的种类,3二进制文件(Binary File)一般把文件分为文本文件和二进制文件(顺序文件实际上是以二进制方式存储的)两大类。在VB.NET中,读写文件是通过流(Stream)对象来进行的。使用流对象读写文件的基本步骤如下:(1)建立一个流Stream对象

44、。(2)基于创建的流Stream对象,建立流Reader对象读取文件内容。(3)基于创建的流Stream对象,建立流Writer对象向文件写入内容。,8.3.2 文本文件读写,1FileStream类要进行文件的读写,首先可以使用FileStream类创建一个关于文件的Stream对象。用FileStream类创建FileStream流对象方法的语法格式如下:Dim 对象名 As New FileStream(path,FileMode,AccessMode,ShareMode)例如,创建一个基于C盘根文件夹的名为myfile.txt的文件的FileStream对象,以只读方式打开该文件,方法

45、如下:Dim fstream As New FileStream(C:myfile.txt,FileMode.Open,FileAccess.Read),8.3.2 文本文件读写,1)Length属性Length属性获取文件的长度,以字节为单位,它是只读属性。2)Position属性Position属性获取或设置文件流的当前位置。FileStream没有指示已到文件尾的标志,可以通过比较Length和Position属性值是否相等来检查是否已到文件尾。3)SetLength方法SetLength方法的功能是设置文件的长度,调用的语法格式如下:FileStream.SetLength(NewLe

46、ngth)4)Seek方法FileStream类通过Seek方法对文件进行随机访问,调用的语法格式如下:FileStream.Seek(Offset,Origin),8.3.2 文本文件读写,5)Lock方法 Lock方法可锁定文件,防止其他进程访问文件的全部或部分,调用的语法格式如下:FileStream.Lock(Position,Length)6)UnLock方法UnLock方法可解锁用Lock方法锁定的文件,调用的语法格式如下:FileStream.UnLock(Position,Length),8.3.2 文本文件读写,2StreamReader类要进行文本文件的读操作,需要创建一个

47、关于文件的StreamReader对象。用StreamReader类的构造方法创建StreamReader对象的方法的语法格式如下:Dim 对象名 As New StreamReader(FS,Encoding,Buffersize)Dim 对象名 As New StreamReader(Path,Encoding,Buffersize)例如,创建一个可以读取C盘根文件夹中名为myfile.txt的文件内容的StreamReader对象,需先建立关于该文件的FileStream对象,方法如下:Dim fstream As New FileStream(C:myfile.txt,FileMode

48、.Open,FileAccess.Read)Dim sr As StreamReadersr=New StreamReader(fstream)也可以直接建立和文件关联的StreamReader对象。例如,直接创建一个可以读取C盘根文件夹中名为myfile.txt的文件内容的StreamReader对象,方法如下:Dim sr As New StreamReader(C:myfile.txt),8.3.2 文本文件读写,StreamReader类还有如下一些常用方法。1)ReadLine方法ReadLine方法从文件流中读取一行字符,并返回读取的字符串,若到达文件尾,则返回Nothing。Re

49、adLine方法无参数。例如,创建一个可以读取C盘根文件夹中名为myfile.txt的文件内容的StreamReader对象,需先建立关于该文件的FileStream对象,方法如下:Dim fstream As New FileStream(C:myfile.txt,FileMode.Open,FileAccess.Read)Dim sr As StreamReadersr=New StreamReader(fstream)Dim strLine As StringDim strAll As StringstrLine=sr.ReadLine()读取文件的第一行strAll=sr.ReadTo

50、End()读取文件的全部内容,8.3.2 文本文件读写,2)ReadToEnd方法ReadToEnd方法读取从文件流当前位置到末尾的全部字符,并返回读取的字符串。ReadToEnd方法无参数。3)Read方法Read方法从文件当前位置读取下一个字符或下一组字符,若成功,则返回大于0的整数;若到达文件尾,返回0,若试图读文件尾后的下一个字符,返回-1。调用的语法格式如下:StreamReader.Read(Chars,Startindex,Count),8.3.2 文本文件读写,3StreamWriter类要进行文本文件的写操作,需要创建一个关于文件的StreamWriter对象。用Stream

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号