尝试使用seekToFileOffset时出错

时间:2011-06-15 00:55:55

标签: iphone ios buffer nsfilehandle

我目前正在尝试从文本文件中的偏移量中读取一行5个字符。 我很确定一切正常,但是当我将缓冲区的对象打印到日志时,它会输出< 7466315c 61>

- (void)fetchCode:(id)sender{
    NSData *databuffer;

    NSString *path = [[NSBundle mainBundle] pathForResource:@"nCode01" ofType:@"txt"];
    nCode = [NSFileHandle fileHandleForReadingAtPath:path];

    if (nCode == nil) {
        NSLog (@"Open of nCode for reading failed\n");
    }

    [nCode seekToFileOffset: 3];
    databuffer = [nCode readDataOfLength: 5];
    NSLog (@"Data = %@", databuffer);

     [nCode closeFile];
}

我认为这可能是一种格式错误,而不是内存,因为每次运行该方法时,它都会打印相同的&lt; 7466315c 61&gt; 了解我错过/做错了什么?< / p>

1 个答案:

答案 0 :(得分:1)

NSData将其字节打印为十六进制数,以4个字节为一组。 <7466315c 61>对应于5个字符“tf1 \ a”。如果需要,您可以使用NSString的initWithData:encoding:将其转换为NSString,或者您可以访问NSData的bytes并将它们解释为(可能未终止的)C风格的字符串。

你期待读到什么?