【OC学习-24】实例:创建一个文件并连续写入10次当前时间——巩固文件操作和熟悉定时器操作
来源:互联网 发布:淘宝上付费引流的软件 编辑:程序博客网 时间:2024/06/04 04:15
(1)创建一个writeData类,在writeData.h里面:
#import <Foundation/Foundation.h>@interface writeData : NSObject-(void)runWrite;//定义一个方法供调用,这个方法是创建并打开一个文件,然后利用定时器每个1秒调用另一个私有方法,这私有方法把当前时间到这个文件夹,但只写10次@end
(2)在writeData.m里面具体实现功能:
#import "writeData.h"@implementation writeData-(void)runWrite{ //以下两行生成一个文件目录 NSString *homePath=NSHomeDirectory(); NSString *filePath=[homePath stringByAppendingPathComponent:@"testfile.text"]; //用上面的目录创建这个文件 NSFileManager *fileManager=[NSFileManager defaultManager]; BOOL success=[fileManager createFileAtPath:filePath contents:nil attributes:nil]; if (success) { NSLog(@"success"); } //打开上面创建的那个文件 NSFileHandle *fileHandle=[NSFileHandle fileHandleForWritingAtPath:filePath]; //开启定时器,每隔1s调用一个timeAction方法 [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeAction:) userInfo:fileHandle repeats:YES];}-(void)timeAction:(NSTimer *)timer{ static int n=0; NSFileHandle *fileHandle=timer.userInfo;//通过timer把对象传过来,只不过取了个重复的名字,可以换名字,但下面用到的几个地方要跟着变换 [fileHandle seekToEndOfFile];//因为是循环写入,所以每次打开文件因为把光标定位在文末 NSDate *currDate=[NSDate date];//先获取当前时间 //以下两行是创建一个格式化工具,先初始化一个时间格式,然后定义这个格式 NSDateFormatter *dateFormate=[[NSDateFormatter alloc]init]; [dateFormate setDateFormat:@"yyyy/MM/dd HH:mm:ss"]; //利用上面的时间格式工具把日期转换成字符串对象格式 NSString *dateStr=[dateFormate stringFromDate:currDate]; dateStr=[dateStr stringByAppendingString:@"\n"];//并且在这个字符串后面增加换行 NSData *data=[dateStr dataUsingEncoding:NSUTF8StringEncoding];//把这个字符串转换成数据格式用于写入文件里 [fileHandle writeData:data];//写入文件 if (n==10) { //控制写入次数 [timer invalidate];//达到次数后关闭定时器 [fileHandle closeFile];//关闭文件 } n++;}@end
(3)在main.m里:
#import <Foundation/Foundation.h>#import "writeData.h"//别忘记导入int main(int argc, const char * argv[]){ @autoreleasepool { writeData *wdata=[[writeData alloc]init];//声明一个对象 [wdata runWrite];//利用这个对象去调用方法 } [[NSRunLoop currentRunLoop]run];//启动加入到消息中的定时器吧应该,如果不写这句,只创建了这个文件,但是没有任何写入数据 return 0;}
(4)结果
总结:动手写,有些语句不太理解,百度,并且在后面继续巩固。
更多NSTimer详见:NSTimer
更多NSRunLoop详见:NSRunLoop的一点理解 IOS开发中NSRunloop跟NSTimer的问题 NSRunLoop 概述和原理
0 0
- 【OC学习-24】实例:创建一个文件并连续写入10次当前时间——巩固文件操作和熟悉定时器操作
- 创建一个文件,并写入当前时间
- 【OC学习-25】实例:一次复制小文件和分次复制大文件——巩固文件的操作方法
- 【OC学习-25】实例:一次复制小文件和分次复制大文件——巩固文件的操作方法
- IO操作 创建一个文件并写入一些文字数据
- 创建txt文件并写入数据和获取当前的系统时间方式
- 获取系统当前时间和创建TXT文件并写入信息
- PHP 文件操作类(创建文件并写入) 生成日志
- OC-文件和计时器操作实例
- OC 文件操作 创建和删除API
- OC 将字典写入数组 并将数组写入文件 对文件内容操作
- OC学习--文件操作
- java操作excel之创建excel文件,并写入数据
- 通过一个游戏编程熟悉文件操作
- OC 创建和写入plist文件
- [例题]VB操作Excel (1)[用VB创建一个xls文件][并向里面写入一个数据]
- java通过InputStream读取和写入文件操作实例代码
- oc文件操作学习笔记
- 基础正则表达式
- 你若离去,我自飘零
- Ubunbu下设置远程连接
- android高内聚低耦合任务事件总线框架
- 显式调用构造函数及临时对象
- 【OC学习-24】实例:创建一个文件并连续写入10次当前时间——巩固文件操作和熟悉定时器操作
- jndi练习
- 精通正则表达式(正则引擎)
- Characters in Regex expression
- Sort List
- c# 播放mp3
- LeetCode-Sort Colors
- php语法与C的差别
- 设计模式(二)之 Prototype(原型)