您的位置:首页 > 移动开发 > IOS开发

IOS线程数据篇13之数据存储,文件内容追加

2015-02-25 10:36 429 查看
这个知识点主要来实现这样一个需求:

点击一次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];


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐