我正在 cocoa 中编写一个小实用程序来计算文件的 MD5、SHA-1 和其他哈希函数。如果理解正确的话,至少 MD5 算法可以以这样的方式实现:我只需要同时加载文件的一小部分——这似乎是个好主意,因为我不想占用所有文件用户的 RAM,然后是一些用于计算 10 Gb 存档的哈希值的 RAM。
如何使用 Cocoa 实现此目的?
最佳答案
NSData
可以对文件进行内存映射,以便底层操作系统(Mac OS 或 iOS)虚拟内存系统根据需要自动分页文件的各个部分。使用带有 options:
参数和 NSDataReadingMappedIfSafe
or NSDataReadingMappedAlways
的 NSData
构造函数之一选项。
关于objective-c - 如何访问二进制文件数据而不将其完全加载到 Cocoa 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10955644/