我得到各种格式的文件扩展名为.png,.txt,.jpg,mp3等作为NSData格式,我需要在本地存储并查看它,我试过这个
NSData* conData = [convStr dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"the converted string to nsdata is :%@",conData);
[conData writeToFile:@"Filename.txt" atomically:YES];
但不幸的是,任何人都可以提供帮助。
答案 0 :(得分:1)
注意 - 将NSData写入文件是一个IO操作,可能会阻止主线程使用调度,也只提供文件路径来代替文件名。
这为我写文件
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
// Generate the file path
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"Filename.txt"];
// Save it into file system
[data writeToFile:dataPath atomically:YES];
});
答案 1 :(得分:0)
您只提供了文件名(Filename.txt)而不是整个文件路径,这就是您的代码无效的原因。
检查下面的代码行,你会明白。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"Filename.txt"];
[urlData writeToFile:filePath atomically:YES];
答案 2 :(得分:0)
您应该在writeToFile
方法
NSString *docsDir;
NSArray *dirPaths;
dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
NSString *targetPatch = [[NSString alloc] initWithString: [docsDir stringByAppendingPathComponent:@"Filename.text"]];
[data writeToFile:targetPatch atomically:YES];