如何在objective-c中按范围读取大文件?

Tim*_*mmy 1 iphone stream ios

我想在objective-c中读取一个大文件,并在iphone开发中使用我使用了以下代码

NSData *data = [[NSData alloc] initWithContentsOfFile:file];
unsigned char *readData[2000];
[data getBytes:readData range:NSMakeRange(1000,3000)]
Run Code Online (Sandbox Code Playgroud)

这可能会导致iphone应用程序崩溃,因为文件的大小很大.

我试图使用NSInputStream,但我找不到任何方法中的range参数,任何人都可以提供帮助吗?

谢谢,最诚挚的问候蒂米

omz*_*omz 8

使用NSFileHandle:寻找数据开始的偏移量并从那里开始读取.

NSFileHandle *fileHandle = [NSFileHandle fileHandleForReadingAtPath:filePath];
[fileHandle seekToFileOffset:1000];
NSData *data = [fileHandle readDataOfLength:2000];
Run Code Online (Sandbox Code Playgroud)