objective-c - 如何访问二进制文件数据而不将其完全加载到 Cocoa 中?

标签 objective-c cocoa file hash loading

我正在 cocoa 中编写一个小实用程序来计算文件的 MD5、SHA-1 和其他哈希函数。如果理解正确的话,至少 MD5 算法可以以这样的方式实现:我只需要同时加载文件的一小部分——这似乎是个好主意,因为我不想占用所有文件用户的 RAM,然后是一些用于计算 10 Gb 存档的哈希值的 RAM。

如何使用 Cocoa 实现此目的?

最佳答案

NSData 可以对文件进行内存映射,以便底层操作系统(Mac OS 或 iOS)虚拟内存系统根据需要自动分页文件的各个部分。使用带有 options: 参数和 NSDataReadingMappedIfSafe or NSDataReadingMappedAlwaysNSData 构造函数之一选项。

关于objective-c - 如何访问二进制文件数据而不将其完全加载到 Cocoa 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10955644/

相关文章:

ios - iOS Parse.com内部查询不会获取所有对象

ios - 从 Core Data 中的 AppDelegate 执行回滚功能时需要访问相同的 ManagedObjectContext 实例

cocoa - 如何在PDFKit PDFView背景上绘制文本

objective-c - 将 NSString 拆分为多个命令行参数

java - 关于数组和文件处理的一些事情

c - 如何跟踪二进制文件中的项目

ios - 我如何在 Objective-C 中获取 CGContext 的最后一点?

iOS 游戏中心组

objective-c - Objective-C 垃圾收集打开时 xml 元素插入错误

Java上传文件ftp服务器