Main Content

fseek

移至文件中的指定位置

说明

示例

fseek(fileID, offset, origin) 在指定文件中设置文件位置指示符相对于 originoffset 字节数。

当操作成功时,status = fseek(___) 返回 0。否则,fseek 将返回 -1。可以使用上述任意输入参数组合。

示例

全部折叠

打开下面的 badpoem.txt 文件,执行读取操作(使位置指针前进),然后使用 seek 移动到文件中的新位置。

使用 fopen 打开文件。然后,使用 ftell 查询当前位置。

fid = fopen('badpoem.txt');
ftell(fid)
ans = 0

读取前三行,并在每次读取后查询指针在文件中的位置。使用 fgetl 进行读取,在读取操作后使用 fseek 检查当前位置。

tline1 = fgetl(fid)  % read the first line 
tline1 = 
'Oranges and lemons,'
ftell(fid)
ans = 20

读取第二行并检查当前位置。

tline2 = fgetl(fid)  % read the second line 
tline2 = 
'Pineapples and tea.'
ftell(fid)
ans = 40

读取第三行并检查当前位置。

tline3 = fgetl(fid)  % read the third line 
tline3 = 
'Orangutans and monkeys,'
ftell(fid)
ans = 64

要读取第 2 行,请将文件中的位置设置为指向第 2 行的开头。使用 fseek 设置位置,然后执行读取操作。

fseek(fid,20,'bof');
fgetl(fid)
ans = 
'Pineapples and tea.'

关闭文件。

fclose(fid); 

输入参数

全部折叠

已打开文件的文件标识符,指定为整数。在使用 fseek 之前,必须使用 fopen 打开文件并获取其 fileID

数据类型: double

要相对于 origin 移动的字节数,指定为整数。offset 的值可以为正数、负数或零。

数据类型: double

文件中的起始位置,指定为字符向量、字符串标量或数值标量。

'bof'-1

文件的开头

'cof'0

文件中的当前位置

'eof'1

文件的结尾

数据类型: double | char | string

提示

  • 如果一个文件有 n 个字节的数据,则这 n 个字节位于从 0n-1 的位置。

备选方法

要移至文件的开头,请调用

frewind(fileID)

此调用等同于

fseek(fileID, 0, 'bof')

扩展功能

版本历史记录

在 R2006a 之前推出

全部展开