在Objective-C中寻找文件位置

时间:2011-05-05 19:43:07

标签: objective-c

这个C代码的Objective-C中的等价物是什么:

FILE* file = fopen( [filePath UTF8String], "r, ccs=UTF-8");
if (file != 0)
{
    char buffer[1024];
    //seek to file position....
    fseek(file,11093, SEEK_CUR);
    int cnt = 0;
    while(fgets(buffer, 1024, file) != NULL)
    {   
        if (cnt>0) {
            if(buffer[0] == 'a') {
                break;
            }
            //Objective c syntax....
            NSString *string = [[NSString alloc] initWithCString: buffer];
         }
        cnt++;
    }
    fclose(file);
}

1 个答案:

答案 0 :(得分:3)

等同于。 Objective-C建立在C之上,因此每个C函数都可以在Objective-C中使用。

有一个以NSStream为根的类层次结构,乍一看,它似乎可能是文件流的Objective-C版本 - 对于许多用途,它是。但是,如果您需要搜索任意流,则需要继续使用fopen()fseek()等。

通过获取/设置其NSInputStream属性,可以查找从磁盘上的文件路径创建的NSStreamFileCurrentOffsetKey实例。但是,调整现有的基于FILE *的代码通常很不方便。

我想我所说的是,如果fopen()适用于您,则无需停止使用它。 :)