如果您希望以类似于通过 NSData 加载文件的方式随机访问文件内容,但不实际将所有内容读取到内存中,则可以使用内存映射。这样做意味着磁盘上的文件被视为虚拟内存的一部分,并且将像常规虚拟内存一样进行页面调入和调出。
NSError * error = nil;
NSData * theData = [NSData dataWithContentsOfFile: thePath
options: NSMappedRead
error: &error];
如果您不关心获取文件系统错误详细信息,您可以使用:
NSData * theData = [NSData dataWithContentsOfMappedFile: thePath];
那么你只需使用 NSData 的-getBytes:range:
提取特定数据的方法,并且实际上只会从永久存储中读取文件的相关部分;他们也有资格被调出。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)