OC-文件和计时器操作实例

来源:互联网 发布:新手学办公软件 编辑:程序博客网 时间:2024/06/05 23:56

Example:创建一个Date.text文件,获取当前的日期,将日期存储为格式”2014/08/22 10:25:23“的形式。然后一秒钟记录一次,将新的时间存入到文件中。

WriteDate.m的内容:

- (void)runWrite {
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSString *path = NSHomeDirectory();
    NSString *filePath = [path stringByAppendingPathComponent:@"Date.text"];
    BOOL success = [fileManager createFileAtPath:filePath contents:nil attributes:nil];
    if (success) {
        NSLog(@"created success");
    }
    NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:filePath];
    [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerAction:)          userInfo:fileHandle repeats:YES];
}

- (void)timerAction:(NSTimer *) timer {
    static int n = 0;
    
    NSFileHandle *fileHandle = timer.userInfo;
    [fileHandle seekToEndOfFile];
    
    NSDate *nowDate =[NSDate date];
    NSDateFormatter *dateformate = [[NSDateFormatter alloc]init];
    [dateformate setDateFormat:@"yyyy/MM/dd HH:mm:ss"];
    NSString *dateString = [dateformate stringFromDate:nowDate];
    dateString = [dateString stringByAppendingString:@"\n"];
    NSData *data = [dateString dataUsingEncoding:NSUTF8StringEncoding];
    [fileHandle writeData:data];
    
    if (n == 10) {
        [timer invalidate];
        [fileHandle closeFile];
    }
    n++;
}


main函数的内容:
int main(int argc,const char * argv[ ])
{
  @autoreleasepool {
        WriteDate *writeDate = [[WriteDate alloc]init];
        [writeDate runWrite];
    }
  [[NSRunLoop currentRunLoop] run];
}

0 0
原创粉丝点击