首页 新闻 搜索 专区 学院

iOS 请教一下,如何将数组数据追加不覆盖

0
悬赏园豆:10 [待解决问题]

获取网络返回的数据是数组。怎么将数组写入到沙盒,下一次返回的数据追加到后面,而不是覆盖呢?
如果返回的是空,那么以前覆盖将什么都没有了。

wangshupei的主页 wangshupei | 初学一级 | 园豆:192
提问于:2018-10-09 10:35
< >
分享
所有回答(1)
0

/**

  • @brief 追加写入数据到沙盒路径

  • @param string 要写入的字符串

  • @param fileName 把数据写入文件的文件名

*/

+(void)writefile:(NSString )string fileName:(NSString )fileName

{

NSLog(@"fileName==%@",fileName);

NSArray *paths  = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

NSString *homePath = [paths objectAtIndex:0];



NSString *filePath = [homePath stringByAppendingPathComponent:fileName];



NSFileManager *fileManager = [NSFileManagerdefaultManager];



if(![fileManager fileExistsAtPath:filePath]) //如果不存在

{

    NSLog(@"-------文件不存在,写入文件----------");

    NSError *error;

    if([string writeToFile:filePath atomically:YESencoding:NSUTF8StringEncodingerror:&error])

    {

        NSLog(@"------写入文件------success");

    }

    else

    {

         NSLog(@"------写入文件------fail,error==%@",error);

    }

}

else//追加写入文件,而不是覆盖原来的文件

{

    NSLog(@"-------文件存在,追加文件----------");

    NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:filePath];



    [fileHandle seekToEndOfFile];  //将节点跳到文件的末尾





    NSData* stringData  = [string dataUsingEncoding:NSUTF8StringEncoding];



    [fileHandle writeData:stringData]; //追加写入数据



    [fileHandle closeFile];

}

}

执古 | 园豆:329 (菜鸟二级) | 2018-10-09 19:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册