开发者

Seek to file position in Objective-C

What it's the equivalent in Objective-C of this C code:

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);
}


That is the equivalent. Objective-C is built on top of C, so every C function is usable in Objective-C.

There is a class hierarchy rooted at NSStream which, at first glance, may appear to be the Objective-C version of file streams--and for many uses, it is. But if you need to seek through an arbitrary stream, you'll want to keep using fopen(), fseek(), etc.

An instance of NSInputStream created from a path to a file on disk will be seekable by getting/setting its NSStreamFileCurrentOffsetKey property. However, it's often awkward to adapt existing FILE *-based code.

I guess what I'm saying is that if fopen() works for you, there's no need to stop using it. :)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜