写入文件时丢失字节

时间:2013-09-11 16:24:26

标签: ios ssl-certificate nsdata nsbundle

我正在使用以下代码将NSData对象写入文件:

NSString *thePath = [[NSBundle mainBundle] pathForResource:@"cert" ofType:@"p12"];
NSData *data = [NSData dataFromBase64String:cert];
NSLog(@"Data length is %i", [data length]);
[data writeToFile:thePath atomically:YES]; //doesn't matter atomically YES or NO, same result

打印出来

  

数据长度为3078

然而,当我读取检索到的文件时,我缺少70个字节!

NSString *thePath = [[NSBundle mainBundle] pathForResource:@"cert" ofType:@"p12"];
NSData *PKCS12Data = [[NSData alloc] initWithContentsOfFile:thePath];
NSLog(@"PKCS12Data length is %i", [PKCS12Data length]);

打印出来:

  

PKCS12Data长度为3008

那么这里发生了什么?是否有另一种方法来创建包含所有数据的文件?

1 个答案:

答案 0 :(得分:1)

您无法写入应用程序包,因为它是只读的。将cert.p12文件写入Documents文件夹。 (我猜你的应用程序包中已有一个cert.p12文件,其大小为3008.你是否从writeToFile检查BOOL返回:?)