Men的博客

欢迎光临!

0%

OC文件和目录管理类

NSFileManager 文件或目录管理类(重点)

1.1 创建NSFileManager的对象
//创建对象
//默认用于创建对象方法
//defaultManager创建出对象都是同一个对象
//单例模式: 有时候想让让一个类只能创建一个对象
NSFileManager *fm = [NSFileManager defaultManager];
1.2 获取目录下的所有文件和目录
//(2)知道某个目录下都有哪些文件和目录
//细节: 不会显示子目录
NSArray *array = [fm contentsOfDirectoryAtPath:@”/Users/mac/Desktop/dir” error:nil];
//显示所有文件包括子目录
array = [fm subpathsOfDirectoryAtPath:@”/Users/mac/Desktop/dir” error:nil];
1.3 创建目录, 创建文件
实例: 创建 /Users/mac/Desktop/dir/hello
//参数2: 表示是否创建中间目录
BOOL b;
b = [fm createDirectoryAtPath:@”/Users/mac/Desktop/dir/hello” withIntermediateDirectories:YES attributes:nil error:nil];
NSLog(@”b = %d”,b);
b = [fm createFileAtPath:@”/Users/mac/Desktop/dir/saozi.txt” contents:nil attributes:nil];
NSLog(@”b = %d”,b);
1.4 复制文件, 移动文件, 删除文件
//参数1: 源文件
//参数2: 目标文件
b = [fm copyItemAtPath:@”/Users/mac/Desktop/dir/saozi.txt” toPath:@”/Users/mac/Desktop/dir/hanzi.txt” error:nil];
//移动文件
BOOL b = [fm moveItemAtPath:@”/Users/mac/Desktop/dir/saozi.txt” toPath:@”/Users/mac/Desktop/dir/hello/saozi.txt” error:nil];
BOOL b = [fm removeItemAtPath:@”/Users/mac/Desktop/dir/hanzi.txt” error:nil];
1.5 判断文件是否存在
//(5)判断文件是否存在
BOOL b =[fm fileExistsAtPath:@”/Users/mac/Desktop/dir/dict.txt”];

文件读写操作 NSFileHandle

2.1 打开文件
细节:打开应选择的模式;
1.为了写文件fileHandleForWritingAtPath
2.为了读文件fileHandleForReadingAtPath
(1)创建对象打开文件
NSFileHandle *fh = [NSFileHandle fileHandleForReadingAtPath:@”/Users/mac/Desktop/dir/123.txt”];
if(fh == nil)
{
NSLog(@”文件打开失败”);
return 1;
}
2.2 读取文件数据
//(2)读取文件数据
//读取指定长度的数据
//一直读取直到文件末尾
// NSData 表示二进制的数据
NSData *data = [fh readDataOfLength:100];
//读取出得二进制数据转化为字符串
NSString *info =[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
2.3 写文件
//写入数据
NSString *str = @”好吃不过饺子,hao wan bu guo sao zi”;
//转化
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
//清空文件内容
//[fh truncateFileAtOffset:0];
//文件读写位置设置到文件的末尾
[fh seekToEndOfFile];
[fh writeData:data];

2.4 移动文件读写位置
//文件读写位置设置到文件的末尾
[fh seekToEndOfFile];

NSValue和NSNumber的使用

int a=10;
int b=20;
//完成了基本数据类型到对象转化
NSNumber *num1 = [NSNumber numberWithInt:a];
NSNumber *num2 = [NSNumber numberWithInt:b];
NSArray *array = [[NSArray alloc] initWithObjects:num1,num2,nil];
//需求: 把一个结构体变量存储到NSArray中?
//思考: 把一个结构体变量转化为对象 NSValue
typedef struct Person{
int age;
float height;
}Person;
Person zhangsan = {18,1.77};

//作用: 把C的类型的数据转化为NSValue类型
//参数1: 数据的地址
//参数2: 数据的类型
//@encode作用把类型转化为字符串
NSValue *value = [[NSValue alloc] initWithBytes:&zhangsan objCType:@encode(Person)];
NSMutableArray *marr = [[NSMutableArray alloc] init];
[marr addObject:value];

Person newPerson;
//从NSValue中解析出存储的数据
[value getValue:&newPerson];

NSDate的使用

(1)获取当前时间
NSDate *date = [NSDate date];
//时区概念 +8区
(2)时间格式化输出
NSDateFormatter *df = [[NSDateFormatter alloc] init];
//设置时间的格式
[df setDateFormat:@”yyyy/MM/dd HH:mm:ss S”];
NSString *dateString = [df stringFromDate:date];
(3)获取年,月,日
设置需要的格式
(4)计算某个操作所消耗的时间–计算时间差
NSDate *beginDate = [NSDate date];
long sum=0;
for (long i=0; i<1000000000; i++) {
sum = sum+i;
}
NSDate *endDate = [NSDate date];
double interval = [endDate timeIntervalSinceDate:beginDate];