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

Posted

技术标签:

【中文标题】如何在objective-c中按范围读取大文件?【英文标题】:How to read large file by range in objective-c? 【发布时间】:2011-08-31 13:35:51 【问题描述】:

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

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

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

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

感谢和最好的问候 提米

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于如何在objective-c中按范围读取大文件?的主要内容,如果未能解决你的问题,请参考以下文章

在Objective-C中按一个属性对自定义对象的NSSet进行排序

在 asp.net 中按日期过滤 DirectoryInfo 文件

如何提高java读取大文本文件的效率

在磁盘上读取/写入文件时如何限制硬盘 I/O?

如何使用 Objective-C 在 IOS 中读取和存储系统日志消息

在 Swift/Objective-c 中按媒体类型自定义图像选择器