IOS 文件读写常用的2中方法

IOS常用的数据存储有两种,一种是将数据通过文件存储在 documentDirectory中,另一种是将文件通过plist文件存储

一。通过document永久存储文件

返回文件名称

- (NSString*) writeFile{
    //创建文件管理器
    NSFileManager *fileManager = [NSFileManager defaultManager];

    //获取document路径,括号中属性为当前应用程序独享
    
    NSArray *directoryPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,      NSUserDomainMask, YES);
    
    NSString *documentDirectory = [directoryPaths objectAtIndex:0];
    
    //定义记录文件全名以及路径的字符串filePath
    
    NSString *filePath = [documentDirectory stringByAppendingPathComponent:@"weathertest.plist"];
    
    //查找文件,如果不存在,就创建一个文件
    
//    if (![fileManager fileExistsAtPath:filePath]) {
//        
//        [fileManager createFileAtPath:filePath contents:nil attributes:nil];
//        
//    }
    //如果想检视文件有没有生成,可以在视图上添加一个Label,加一行代码显示地址。
    
   // Label.text = documentDirectory;
    NSLog(@"------documentDirectory:%@---",documentDirectory);
    
    //或者
    
   // Label.text = filePath;
    NSLog(@"------filePath:%@---",filePath);
    
    return filePath;
}


将数据写入到文件中去
- (void)testWriteFile{

   NSString *filePath = [self writeFile];
    if ([[NSFileManager defaultManager] fileExistsAtPath:filePath])
    {
        self.fileConfDic = [NSMutableDictionary dictionaryWithContentsOfFile:filePath];
    }
    else
    {
        self.fileConfDic = [[[NSMutableDictionary alloc] initWithCapacity:10] autorelease];
    }
    [self.fileConfDic setObject:@"1" forKey:@"HdFile"];
     NSMutableDictionary *logInfo = [[NSMutableDictionary alloc] initWithCapacity:2];
    
    if(![fileConfDic writeToFile: filePath atomically:YES]){
        [logInfo setObject:@"文件保存失败" forKey:@"信息"];
        [logInfo setObject:@"执行saveFileDic时失败" forKey:@"出错时机"];
        [logInfo setObject:filePath forKey:@"路径"];
    }else{
    
        [logInfo setObject:@"文件保存成功" forKey:@"信息"];
        [logInfo setObject:filePath forKey:@"文件保存路径"];
    }
    
    [logInfo writeToFile: [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"log_info.plist"] atomically:YES];
    [logInfo release];
}


当进行完毕以上操作后,你就可以在document目录下面看到weathertest.plist  文件了,并且文件中还有 1--HdFile的字典。

2.通过plist问价来存储

此处可以存储NsArray  ,Bool.等常用数据类型。当所存储的数据是 NSMutableArray,NSMutableDictionary可变的数据类型时,需要将其转换为常用数据类型,否则会奔溃

        //保留到一个NSDictionary字典里,由系统保存到文件里.

        [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"key_isLogined"];

        //命令直接同步到文件里,来避免数据的丢失。

        [[NSUserDefaults standardUserDefaults] synchronize];


  //放在这里做判断,如果首次登陆成功的话,保存登陆状态,以后就直接进入主界面

    isLogined=[[NSUserDefaults standardUserDefaults] boolForKey:@"key_isLogined"];


你可能感兴趣的:(IOS 文件读写常用的2中方法)