将JSON内容写入并读取文件

本文将介绍如何使用Objective-C语言进行iOS应用开发,包括基本语法、开发环境配置、常见框架使用及实战案例分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//write

-(void)creatAFile:(NSString *)urlString
{
    NSString *filePath = [self getPlistFile];
    BOOL blHave = [[NSFileManager defaultManager] fileExistsAtPath:filePath];
    if (blHave) {
        [[NSFileManager defaultManager] fileExistsAtPath:filePath];
    }
    
    NSURL *url = [NSURL URLWithString:urlString];
    NSString *jsonString = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
    NSData *writer;
    NSArray *jsonArray = [jsonString JSONValue];
    if ([jsonArray count] != 0) {
        writer = [[NSData alloc] initWithData:[jsonString dataUsingEncoding:NSUTF8StringEncoding]];
        BOOL result = [writer writeToFile:filePath atomically:YES];
        if (result) {
            [self showMessageBox:WRITE_SUCCESS];
        }else {
            [self showMessageBox:WRITE_FAIL];
        }
        [writer release];
    }
    else
    {
        [self showMessageBox:WRITE_FAIL];
    }

}

//read

-(NSArray *)readFile:(NSString *)URLString
{
    NSArray *array;
    NSString *filePath = [self getPlistFile];
    BOOL blHave=[[NSFileManager defaultManager] fileExistsAtPath:filePath];
    if (blHave) {
        //[[NSFileManager defaultManager] removeItemAtPath:savedImagePath error:nil];
    }else{
        [self creatFile:URLString];
    }
    
    NSData *reader = [[NSData alloc] initWithContentsOfFile:filePath];
    if (reader == nil) {
        array = nil;
    }else
    {
        NSString *result = [[NSString alloc] initWithData:[reader subdataWithRange:NSMakeRange(0, [reader length])] encoding:NSUTF8StringEncoding];
        
        array = [result JSONValue];
        [reader release];
        [result release];
    }
    return array;
}

-(NSString *)getPlistFile
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *savedFilePath = [documentsDirectory stringByAppendingPathComponent:@"text.plist"];
    return savedFilePath;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值