我有一个现有文件,我想删除它的内容,然后再次写入,但只能逐行附加。 这是我的代码不确定为什么不起作用:

if ([filemgr removeItemAtPath: fileName error: NULL]  == YES){
        NSLog (@"Remove successful");
    }
    else{
        NSLog (@"Remove failed");
    }

    NSString *cachePath = [[NSString alloc] initWithFormat:@"%@",fileName];
    NSFileHandle *fileHandler = [NSFileHandle fileHandleForUpdatingAtPath:cachePath];
    BOOL isFirst = NO;

    for(id entry in serializedObjects){
        NSString *sectionName = [NSString stringWithFormat:@"!%@\n", entry];
        [fileHandler writeData:[sectionName dataUsingEncoding:NSUTF8StringEncoding]];

        if (!isFirst) {
            [fileHandler seekToEndOfFile];
            isFirst = YES;
        }

        NSArray *list = [serializedObjects objectForKey:entry];

        for (int i = 0; i < list.count; i++) {
            NSString *line = [[list objectAtIndex:i] stringByAppendingString:@"\n"];
            [fileHandler writeData:[line dataUsingEncoding:NSUTF8StringEncoding]];
        }

        [fileHandler writeData:[[NSString stringWithFormat:@"%@", @"~\n"] dataUsingEncoding:NSUTF8StringEncoding]];
    }

[fileHandler closeFile];

我的想法是将第一行写入文件,然后附加其他行。 有人在这里看到我在做什么错吗?

此方法完成后,我看不到任何错误,但是在我手动检查之后,要写入的文件不存在。

#1楼 票数:0 已采纳

您的文件句柄写入I / O缓冲区,该缓冲区不会立即写入磁盘。 因为io很慢,所以这是内置在文件句柄对象中的效率。 为确保将其写入磁盘,必须使用syncnizeFile刷新io缓冲区。 完成文件句柄后,还需要调用closeFile(它也会同步,因此同步是可选的)。

  ask by London translate from so

未解决问题?本站智能推荐:

2回复

如何设置当前iOS版本中不存在的枚举?

我正在尝试为UIButton中的textLabel设置linebreakmode。 在iOS 6.0之前, NSLineBreakByWordWrapping将不可用。 将在iOS6之前运行,但是XCode抛出错误,说它无法识别UILineBreakModeWordWrap 。 如何
1回复

在storyboard文件中存在的元素翻转和不存在

这不是一个大问题,但很烦人。 每当我在Interface Builder中编辑故事板并且我想将其检入修订控制系统时,就会生成或删除一个元素:如果它存在则将其删除,反之亦然。 它给我的登记处增加了不必要的噪音。 有人知道发生了什么以及如何解决这个问题吗?
3回复

默认情况下,基于ios5的项目中不存在dealloc方法

我注意到在创建基于ios5的项目时,没有将dealloc方法放置在各种类文件中,但是我记得在基于ios 4.3的项目中,大多数文件中都放置了现成的dealloc方法。意味着如果我不释放分配的对象,就不会发生内存泄漏? 还是我自己的dealloc方法?
1回复

ios-归档时出现以前不存在的奇怪新错误

我收到这样的错误: 我不太清楚这个.dSYM文件是什么,以及为什么它现在开始引起问题。 也许是其他问题? 值得注意的是,我最近开始从Mac上收到一些奇怪的行为,该行为表示由于内存不足,它无法保存文件,但是还剩下很多内存。
2回复

iOS文件写入失败

我一直在尝试将字符串写入iOS5.1中的文件,但是文件内容始终为(null)。 你能帮我找出原因吗? 这是我的代码: NSLog始终返回(空)。 我究竟做错了什么? 真诚的 佐利
2回复

iOS帮助:如何使用相机拍照并将其保存在iPhone上?

我是iPhone开发的新手。 我需要制作一个应用程序,用户可以在其中拍照,然后将其保存在iPhone上,还必须使用SQLite数据库存储图像,然后再显示。 谁能帮助我提供示例代码和过程说明? 编辑:我做了一个使用UIImageView拍照的按钮,但是我不确定是否可以使用,因为我没有iP
1回复

iOS-尝试编辑方案时找不到我的ProjectName.app文件

我遇到一个问题,每次尝试构建项目时,构建状态栏都会挂起并显示“ attachment projectName” 因此,我尝试按照此处的说明进行操作: 附加到ProjectName并直接设置项目文件。 但是问题是我找不到该目录“支持文件ProjectName.app的文件” 该文件确实
2回复

从服务器读取数据并保存在txt文件中-iOS

将txt文件保存在应用程序中是个好主意吗? 例如,一旦用户单击播放按钮,进度条就会被激活,它会从服务器获取数据,并将数据解析并显示在地图上,并且同时每次将戳记数据保存在txt文件中。 一旦进度条已满,然后重置自身并再次从0开始。 下一个周期它将不会从服务器读取数据,而是会从保存的txt