从文档目录中读取文件Objective-c

时间:2012-08-03 15:16:52

标签: objective-c filepath

我将文件写入应用程序的文档目录:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    // the path to write file
    NSString *file = [documentsDirectory stringByAppendingPathComponent:@"data.json"];

    [responseString writeToFile:file atomically:YES];

但是如何访问该文件?

我的代码如下所示:

NSString *filePath = [[NSFileManager defaultManager] pathForRessorce: @"data" ofType:@"JSON"];

    NSString *fileContent = [[NSString alloc] initWithContentsOfFile:filePath]; 

    SBJsonParser *parser = [[SBJsonParser alloc] init];

    NSDictionary *data = (NSDictionary *) [parser objectWithString:fileContent error:nil];

文件路径未填充...有人可以给我一个提示吗?

谢谢!

2 个答案:

答案 0 :(得分:7)

您正在从资源文件夹中读取,而不是从文档目录中读取。您需要以与写作期间使用的方式相同的方式填充filePath。那就是:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"data.json"];
NSString *fileContent = [[NSString alloc] initWithContentsOfFile:filePath];

答案 1 :(得分:2)

“不推荐使用initwithcontentsoffile”警告

所以不要:

NSString *fileContent = [[NSString alloc] initWithContentsOfFile:filePath];

使用:

NSString *userInfoFileContent = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];