在iphone上逐行写数据

时间:2010-12-10 06:37:25

标签: iphone

我可以在iphone上写一个文本文件..但每次我写的我的上一个值都被删除了,有没有办法继续写数据分隔\ n ??

这是我的代码

NSString *cc=@"1";

    [cc writeToFile:storePath atomically:YES];

    NSString *myText1 = [NSString stringWithContentsOfFile:storePath];

    NSLog(@"text is %@",myText1);

这给了我1现在我想添加2个像1然后2个

4 个答案:

答案 0 :(得分:7)

使用NSFileHandle方法seekToEndOfFile和对writeData的调用

NSFileHandle *aFileHandle;
NSString *aFile;

aFile = [NSString stringWithString:@"Your File Path"]; //setting the file to write to

aFileHandle = [NSFileHandle fileHandleForWritingAtPath:aFile]; //telling aFilehandle what file write to
[aFileHandle truncateFileAtOffset:[aFileHandle seekToEndOfFile]]; //setting aFileHandle to write at the end of the file

[aFileHandle writeData:[toBeWritten dataUsingEncoding:nil]]; //actually write the data

答案 1 :(得分:2)

这是一个NSString类别方法,它将接收器附加到具有指定编码的指定路径(通常是NSUTF8StringEncoding)。

- (BOOL) appendToFile:(NSString *)path encoding:(NSStringEncoding)enc;
{
    BOOL result = YES;
    NSFileHandle* fh = [NSFileHandle fileHandleForWritingAtPath:path];
    if ( !fh ) {
        [[NSFileManager defaultManager] createFileAtPath:path contents:nil attributes:nil];
        fh = [NSFileHandle fileHandleForWritingAtPath:path];
    }
    if ( !fh ) return NO;
    @try {
        [fh seekToEndOfFile];
        [fh writeData:[self dataUsingEncoding:enc]];
    }
    @catch (NSException * e) {
        result = NO;
    }
    [fh closeFile];
    return result;
}

答案 2 :(得分:-2)

我不完全理解这个问题,但你可以在每次保存文本时尝试,先读取文件中已有的文本,然后使用stringByAppendingString。例如,代码

NSString *begRainbow = @"Red orange yellow green";
NSString *fullRainbow = [begRainbow stringByAppendingString:@" blue purple"];

将fullRainbow保留为“红橙黄绿蓝紫”。

答案 3 :(得分:-2)

添加所有文件包含在NSMutableArray中然后写入每次添加数组An Write this