Visual Basic.Net中的文件操作

Visual Basic.Net中有三种访问文件系统的方法:第一种是使用 Visual Basic 运行时函数进行文件访问 (VB传统方式直接文件访问);第二种是通过.Net中的System.IO模型访问;第三种是通过文件系统对象模型FSO访问。 

文件是存储在某种介质上数据的集合,就其本身来讲,文件只不过是磁盘上的一系列相关的数据字节。当应用程序访问文件时,它必须假定字节是否表示字符、数据记录、整数、字符串等。通过指定文件的访问类型来告诉应用程序假定什么内容。 

Visual Basic 提供三种类型的文件访问: 

1.顺序,用于在连续的块中读取和写入文本文件。 

2.随机,用于读取和写入结构为固定长度记录的文本或二进制文件。 

3.二进制,用于读取和写入任意结构的文件。 
使用 Visual Basic 运行时函数进行文件访问 
VB.Net保留了VB早期的直接文件访问的方式即通过一些相关的函数直接访问操作文件。 下表分别列出了三种直接文件访问类型的所有可用文件访问函数。 

函数 
顺序 
随机 
二进制 
说明 

FileOpen 函数 



打开输入或输出文件 

FileClose 函数 



关闭对用 FileOpen 函数打开的文件 

Input 函数 



从打开的顺序文件中读取数据并将数据分配给变量。 

InputString 函数 



返回 String 值 

LineInput 函数 



从打开的顺序文件中读取一行数据并将它赋给 String 变量。 

Print、Printline 函数 



将格式化的显示数据写入顺序文件。 

Write、WriteLine 函数 



将数据写入顺序文件。 



要对文件进行操作,首先要打开文件,使用FileOpen函数。 

示例:以 Output 模式共享方式打开C盘下的readme.txt文件。 

FileOpen(1, "c:/readme.txt", OpenMode.Output, OpenShare.Shared) 

当操作文件结束后,需要关闭文件防止文件内容的丢失,此外需要重新打开文件时也需要关闭文件,用FileClose函数,关闭刚才打开的文件c:/readme.txt: 

FileClose(1); 

当以input模式打开顺序文件时,要打开的文件必须已经存在,否则打开出错,以Output或Append模式打开一个不存在的文件时,FileOpen先创建该文件,然后打开。 

其他的一些函数: 

Dir 函数:返回表示匹配指定模式或文件属性的文件名、目录名或文件夹名的字符串或返回驱动器卷标的字符串。 

EOF 函数:当到达以 Random 或顺序 Input 模式打开的文件尾时,返回 Boolean 值 True。 

FileCopy 函数:复制文件 

FileDateTime 函数:返回指示创建或最后修改文件的日期和时间的 Date 值。 



FileLen 函数:返回以字节表示的指定文件长度的 Long 值。 

FreeFile 函数:返回一个 Integer 值,表示可由 FileOpen 函数使用的下一个文件号。 

GetAttr 函数:返回表示文件、目录或文件夹的属性的 FileAttribute 值。 

Loc 函数:返回一个 Long 值,该值指定打开文件中当前的读/写位置。 

LOF 函数:返回一个 Long 值,表示用 FileOpen 函数打开的文件的大小(以字节为单位)。 

Seek 函数:返回一个 Long 值,指定用 FileOpen 函数打开的文件中的当前读/写位置,或设置用 FileOpen 函数打开的文件中的下一个读/写操作的位置。 
SetAttr 函数:设置文件属性信息。 

1、顺序文件的操作 

从文件中读取字符串 

有三个函数可以从顺序文件中读取字符串:Input,InputString和LineInput。 

Input函数 

从打开的顺序文件中读取数据并将数据分配给变量。 

Public Sub Input( FileNumber As Integer, ByRef Value As Object) 

其中参数FileNumber为有效文件号;Value为被赋予从文件读取的值的变量,它不能为数组或对象变量。 

下面的例子是一个写入和读取文本example.txt的Hello,world!例子,新建一个控制台应用程序,写入下面的代码查看结果。 

FileOpen(1, "c:/example.txt", OpenMode.Output) 

Write(1, "Hello,") 

Write(1, "World!") 

FileClose(1) 



Dim s As String 

FileOpen(1, "c:/example.txt", OpenMode.Input) 

Do While Not EOF(1) 

Input(1, s) 

Console.WriteLine(s) 

Loop 

FileClose(1) 

InputString函数 

返回 String 值,该值包含以 Input 或 Binary 模式打开的文件中的字符。 

InputString ( ByVal FileNumber As Integer, ByVal CharCount As Integer ) As String 

其中参数FileNumber是有效文件号,CharCount是指定要读取的字符个数的有效数值表达式。 

与 Input 函数不同,InputString 函数返回它读取的所有字符,包括逗号、回车符、换行符、引号和前导空格等。对于以 Binary 访问模式打开的文件,如果试图在 EOF 返回 True 之前用InputString 函数读取整个文件,则会产生错误。在用 InputString 读取二进制文件时,用 LOF 和 Loc 函数代替 EOF 函数,而在使用 EOF 函数时则使用 FileGet 函数。 

示例: 

Dim s As String 

FileOpen(1, " c:/example.txt ", OpenMode.Binary) 

Do While Not EOF(1) 

s = InputString(1, 9) 

Console.WriteLine(s) 

Loop 

FileClose(1) 

LineInput 函数: 

从打开的顺序文件中读取一行数据并将它赋给 String 变量。 

Public Function LineInput (ByVal FileNumber As Integer) As String 

参数 FileNumber 是有效文件号。 

此函数从文件一次读取一个字符,直到遇到回车符(Chr(13))或回车–换行符(Chr(13) + Chr(10))为止。回车–换行序列被跳过而不是附加到字符字符串上。 

示例: 

Dim s As String 

FileOpen(1, " c:/example.txt ", OpenMode.Binary) 

Do While Not EOF(1) 

s = LineInput(1) 

Console.WriteLine(s) 

Loop 

FileClose(1) 
把字符串写入文件 

如果要向文件中写入数据,可以用Print/PrintLine函数,如果要写入的数据是字符串或是数值,则可以用Write/WriteLine函数,要写文件,应该先将文件以Output或Append方式打开,然后菜可以使用Print函数或Write函数。 

Print/PrintLine函数:将格式化的显示数据写入顺序文件。 

Public Sub Print( ByVal FileNumber As Integer, ByVal ParamArray Output() As Object) 

Public Sub PrintLine( ByVal FileNumber As Integer, Val ParamArray Output() As Object ) 

其中参数FileNumber 是有效文件号,Output 是要写入文件的零个或更多个用逗号分隔的表达式。 

示例: 

FileOpen(1, " c:/example.txt ", OpenMode.Output) 

Printline(1) 

Printline(1,”Hello,”) 

Print(1,spc(4),”World!”) 

FileClose(1) 

Write/Writeline和print/printline类似 



2.随机文件的操作 

随机访问文件中的字节构成相同的一些记录,每个记录包含一个或多个字段,对于一个字段的记录对应于任一标准类型,随机访问文件中的所有记录都必须具有相同长度,如果实际字符串包含的字符少于将它写入其中的字符串元素的固定长度,则 Visual Basic 用空白(字符代码 32)填充记录中的尾随空格。如果该字符串长于字段大小,则 Visual Basic 截断它。 

示例:用户定义数据类型: 

Structure Person 

Public ID As Integer 

Public MonthlySalary As Decimal 

<VBFixedString(15)> Public Name As String 

<VBFixedString(2)> Public Sex As String 

End Structure 

其中VBFixedString用于定义字符串为固定长度的字符串。 

在打开一个文件进行随机操作访问前,应该定义一个类型该类型对应该文件已包含或未包含的记录。 

打开要进行随机访问的文件: 

FileOpen 函数:FileOpen(FileNumber, FileName, OpenMode.Random, , , RecordLength) 

FileNumber 和 FileName 分别指定要打开的文件的编号和文件名。RecordLength 以字节为单位指定每条记录的大小。如果 RecordLength 小于写入文件的记录的实际长度,则会生成错误。 

示例:打开随机访问的文件。 

Dim FileNum as Integer ,RecLength as Long, Aperson as Per 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值