FileStream类维护内部文件指针,该指针指向文件中进行下一次读写操作的位置。大多数情况下,当打开文件时,它就指向文件的开始位置,但是可以修改此指针。这允许应用程序在文件的任何位置读写,随机访问文件,或直接跳到文件的特定位置上。当处理大型文件时,这非常省时,因为马上就可以找到正确位置。
实现此功能的方法是SeekO方法,它有两个参数:第一个参数指定文件指针移动距离(以字节为单位)。第二个参数指定开始计算的起始位置,用&ekOrigin枚举的一个值表示。SeekOrigin枚举包含3个值:Begin、Crnrent 和 End。
例如,下面的代码行将文件指针移到文件的第8个字节处,其起始位置就是文件的第1个字节:
aFile.Seek(8, SeekOrigin.Begin);
下面的代码行将文件指针从当前位置开始向前移动2个字节。如果在上面的代码行之后执行下面的代码,文件指针就指向文件的第10个字节:
aFile,Seek{2, SeekOrigin,Current);
注意读写文件时,文件指针会随之改变。在读取了10个字节之后,文件指针就指向被读取的第10个字节之后的字节。
也可以指定负查找位置,这可与SeekOrigin.End枚举值一起使用,查找靠近文件末端的位置。下面的代码会查找文件中的倒数第5个字节:
aFile.Seek(-5, SeekOrigin.End);
采用这种方式访问的文件有时称为随机访问文件,因为应用程序可以访问文件中的任何位置。稍后介绍的StreamReader和StreamWriter类可连续访问文件,但不允许以这种方式操作文件指针。
已有 22658 名学员学习以下课程通过考试
最需教育客户端 软件问题一手掌握
去 App Store 免费下载 iOS 客户端
点击加载更多评论>>