//------------NSFileManager 文件或目录管理类-------------
//1.创建对象
//defaultManager创建出来对象都是同一个对象(单例模式:想让一个类只创建一个对象)
NSFileManager *fm = [NSFileManager defaultManager];
NSFileManager *fm_1 = [NSFileManager defaultManager];
NSLog(@"%p---%p",fm,fm_1);
//2. 获取目录下的所有文件和目录
//不显示子目录
NSArray *array = [fm contentsOfDirectoryAtPath:@"/Users/apple/Desktop/dir" error:nil];
NSLog(@"%@",array);
//包括子目录
NSArray *array_1 = [fm subpathsOfDirectoryAtPath:@"/Users/apple/Desktop/dir" error:nil];
NSLog(@"%@",array_1);
//3.创建目录。创建文件
//参数2表示是否创建中间目录
BOOL b = [fm createDirectoryAtPath:@"/Users/apple/Desktop/dir/a.txt" withIntermediateDirectories:YES attributes:nil error:nil];
NSLog(@"%i",b);//创建了文件或已经存在,都会返回1
//创建文件
bool b_1 = [fm createFileAtPath:@"/Users/apple/Desktop/dir/a" contents:nil attributes:nil];
NSLog(@"%i",b_1);
//4.复制文件, 移动文件, 删除文件
//参数1:源文件 参数2:目标文件
bool b_2 = [fm copyItemAtPath:@"/Users/apple/Desktop/dir/abc/123.txt" toPath:@"/Users/apple/Desktop/dir/ab.txt" error:nil];
NSLog(@"%i",b_2);//操作成功范围1.。当目标文件存在是返回0
//移动文件
bool b_3 = [fm moveItemAtPath:@"/Users/apple/Desktop/dir/abc/123.txt" toPath:@"/Users/apple/Desktop/dir/abcd.txt" error:nil];
NSLog(@"%i",b_3);//目标文件必须是.txt结尾
//删除文件
bool b_4 = [fm removeItemAtPath:@"/Users/apple/Desktop/dir/abc" error:nil];
NSLog(@"%i",b_4);//移除第二个文件是,第一个会恢复
//5.判断文件是否存在
bool b_5 = [fm fileExistsAtPath:@"/Users/apple/Desktop/dir/word"];
NSLog(@"%i",b_5);
//----------------文件读写操作 NSFileHandle------------------
//1. 打开文件
//(1)创建对象打开文件
NSFileHandle *fh = [NSFileHandle fileHandleForReadingAtPath:@"/Users/apple/Desktop/dir/abc.txt"];
if (fh == nil) {
NSLog(@"文件打开失败");
return 1;
}
NSLog(@"文件打开成功");
//(2)读取文件数据
//读取指定长度的数据 readDataOfLength:12
//一直读取直到文件末尾 readDataToEndOfFile
NSData *data = [fh readDataOfLength:100];
//NSLog(@"data = %@",data);//NSData表示二进制的数据
//读取出得二进制数据转化为字符串
NSString *info = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",info);
//写文件
NSFileHandle *fh_1 = [NSFileHandle fileHandleForWritingAtPath:@"/Users/apple/Desktop/dir/abc.txt"];
//(3)写入数据
NSString *str = @"好吃不过饺子,好玩不过赶紧";
//转化
NSData *data_1 = [str dataUsingEncoding:NSUTF8StringEncoding];
//清空文件内容
[fh_1 truncateFileAtOffset:0];
[fh_1 seekToEndOfFile]; //文件读写位置设置到文件的末尾
[fh_1 writeData:data_1];
//(4)移动文件读写位置
[fh_1 seekToFileOffset:12];
[fh_1 writeData:data_1];
//---------------- NSValue和NSNumber的使用------------------
//(1)基本数据类型与对象类型相互转化
int a = 20;
int c = 10;
NSNumber *num_1 = [NSNumber numberWithInt:a];
NSNumber *num_2 = [NSNumber numberWithInt:c];
NSArray *array_2 = [[NSArray alloc]initWithObjects:num_1,num_2, nil];
NSLog(@"%@-----%@",array_2[1],array_2[0]);
NSLog(@"%i----%i",[array_2[1] intValue],[array_2[0] intValue]);
//(2)把一个结构体变量存储到NSArray中
typedef struct Person{
int age;
float height;
}person;
person chenliang = {23,174};
//作用: 把C的类型的数据转化为NSValue类型
//参数1:数据的地址 参数2:数据的类型 @encode作用把类型转化为字符串
NSValue *valve = [[NSValue alloc]initWithBytes:&chenliang objCType:@encode(person)];
NSMutableArray *marray = [[NSMutableArray alloc]init];
[marray addObject:valve];
NSLog(@"%@",marray);
//从NSValue中解析出存储的数据
person newPerson;
[valve getValue:&newPerson];
NSLog(@"age = %d,height = %f",newPerson.age,newPerson.height);
//---------------- NSDate的使用------------------
//(1)获取当前时间
NSDate *date = [NSDate date];//时区概念 +8区
NSLog(@"%@",date);
//(2)时间格式化输出
NSDateFormatter *dataformatter = [[NSDateFormatter alloc]init];
[dataformatter setDateFormat:@"yyyy/MM/dd hh:mm:ss S"];
NSString *dataString = [dataformatter stringFromDate:date];
NSLog(@"%@",dataString);
//(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];
NSLog(@"interval = %f",interval);
iOS_文件操作 NSNumber NSValue NSDate
最新推荐文章于 2015-08-20 10:08:17 发布
