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

发布于 2024-11-08 22:49:53 字数 340 浏览 1 评论 0原文

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

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

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

我尝试使用 NSInputStream,但在任何方法中都找不到范围参数,任何人都可以提供帮助吗?

谢谢&此致 提米

I want to read a large file in objective-c, and used in iphone development
I used the follow code

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

This maybe get the iphone app crash, because the size of the file is large.

I tried to use NSInputStream, but I can't find the range parameter in any method, can anyone give a help?

Thanks & Best Regards
Timmy

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

亚希 2024-11-15 22:49:53

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

NSFileHandle *fileHandle = [NSFileHandle fileHandleForReadingAtPath:filePath];
[fileHandle seekToFileOffset:1000];
NSData *data = [fileHandle readDataOfLength:2000];

Use NSFileHandle: Seek to the offset where your data starts and start reading from there.

NSFileHandle *fileHandle = [NSFileHandle fileHandleForReadingAtPath:filePath];
[fileHandle seekToFileOffset:1000];
NSData *data = [fileHandle readDataOfLength:2000];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文