我可以在iphone上写一个文本文件..但每次我写的我的上一个值都被删除了,有没有办法继续写数据分隔\ n ??
这是我的代码
NSString *cc=@"1";
[cc writeToFile:storePath atomically:YES];
NSString *myText1 = [NSString stringWithContentsOfFile:storePath];
NSLog(@"text is %@",myText1);
这给了我1现在我想添加2个像1然后2个
答案 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