我的应用程序会下载一个前 12 字节数据已加密的文件,因此我必须从 Document 中读取该文件并解密前 12 字节数据。
我的第一次尝试是读取整个文件并对其进行解密,然后再次写入文件。但是如果文件太大,这将消耗大量内存。
那么,有没有办法让我读取前 12 个字节的数据并替换它?
我的应用程序会下载一个前 12 字节数据已加密的文件,因此我必须从 Document 中读取该文件并解密前 12 字节数据。
我的第一次尝试是读取整个文件并对其进行解密,然后再次写入文件。但是如果文件太大,这将消耗大量内存。
那么,有没有办法让我读取前 12 个字节的数据并替换它?
这是用任何语言做的标准方式。
读取块中的文件 Replace in Buffer 写入临时文件 删除原始文件并将临时文件重命名为原始文件。
就目标C而言,我发现了一个有用的链接
http://www.techotopia.com/index.php/Working_with_Files_in_Objective-C
转到此主题“将数据写入文件”
好吧,Objective-C 是基于 C 的,因此包括文件操作函数在内的所有函数都应该是开箱即用的。您可以将 NSString 文件路径转换为 char 数组,并在此链接的帮助下执行所需的文件操作。
#include <stdio.h>
FILE *f = fopen("yourFileName", "rb");
if(f == NULL)
; // handle exception
int nBytesToRead;
char theBuffer[nBytesToRead];
size_t bytesRead = fread(theBuffer, 1, nBytesToRead, f);
// do with your bytesRead
fclose(f);