这个知识点主要来实现这样一个需求:
点击一次button,实现将所有的内容依次追加到文件中。
(1)button响应方法
为了设置文件存储的后缀名,这里调用获取时间方法:
NSDate * senddate=[NSDate date];
NSDateFormatter *dateformatter=[[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"YYYYMMddhhmmss"];
NSString * locationString=[dateformatter stringFromDate:senddate];
FWNSLogInfo *mFWNSLogInfo = [FWNSLogInfo sharedContextWithMode:locationString];
这里调用了一个单例类:
+ (FWNSLogInfo *)sharedContextWithMode:(NSString *)filename
{
static FWNSLogInfo *mFWNSLogInfo = nil;
static dispatch_once_t predicate;
dispatch_once(&predicate, ^{
mFWNSLogInfo = [[FWNSLogInfo alloc] init];
});
if (filename != nil) {
mFWNSLogInfo.writeFilePath = filename;
}
return mFWNSLogInfo;
}
这个单例类中,我们将当前时间的文件名称传递过去。(2)文件内容追加并存储
+(void) appStringOther:(NSString *) s
{
FWNSLogInfo *mFWNSLogInfo = [FWNSLogInfo sharedContextWithMode:nil];
NSString *home =NSHomeDirectory();
NSString *docPath = [home stringByAppendingPathComponent:@"Documents"];
NSString *filepath = [docPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@MAALog",mFWNSLogInfo.writeFilePath]];
NSFileHandle *inFile;
inFile = [NSFileHandle fileHandleForReadingAtPath:filepath];
BOOL isExit = NO;
if (inFile == nil) {
isExit = NO;
}else
isExit = YES;
if (!isExit) {
NSLog(@"%@",@"文件不存在");
NSString *s = [NSString stringWithFormat:@"开始了:\r"];
[s writeToFile:filepath atomically:YES encoding:NSUTF8StringEncoding error:nil];
}
NSFileHandle *outFile;
NSData *buffer;
outFile = [NSFileHandle fileHandleForWritingAtPath:filepath];
if(outFile == nil)
{
NSLog(@"Open of file for writing failed");
}
[outFile seekToEndOfFile];
NSString *bs = [NSString stringWithFormat:@"%@",s];
buffer = [bs dataUsingEncoding:NSUTF8StringEncoding];
[outFile writeData:buffer];
[outFile closeFile];
}