------
Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1.NSFileManager文件或目录管理类(重点)
如何隐藏文件:
如何隐藏文件:
1.打开终端
2.常用命令:pwd 显示当前的目录
ls 显示当前目录下的文件和目录 cd dir 表示进入dir这个目录
ls -a 显示目录下的所以文件(包括隐藏文件) mv smallMovie .smallMovie隐藏文件
ls 显示当前目录下的文件和目录 cd dir 表示进入dir这个目录
ls -a 显示目录下的所以文件(包括隐藏文件) mv smallMovie .smallMovie隐藏文件
如何使用NSFileManager操作文件和目录,完成类似文件复制,移动这些操作
<1>创建NSFileManager的对象
注意:一般情况下,使用defaultManager方法创建对象
这个方法返回的是对象的单例???
单例表示一个类的某个方法每次返回的对象都是同一个对象
单例在以后的IOS开发者及其重要
NSFileManager *fm=[NSFileManager defaultManager];
NSFileManager *fm2=[NSFileManager defaultManager];
NSLog(@"fm=%p fm2=%p",fm,fm2);
输出:fm=0x100114470 fm2=0x100114470
<1>创建NSFileManager的对象
注意:一般情况下,使用defaultManager方法创建对象
这个方法返回的是对象的单例???
单例表示一个类的某个方法每次返回的对象都是同一个对象
单例在以后的IOS开发者及其重要
NSFileManager *fm=[NSFileManager defaultManager];
NSFileManager *fm2=[NSFileManager defaultManager];
NSLog(@"fm=%p fm2=%p",fm,fm2);
输出:fm=0x100114470 fm2=0x100114470
<2>获取目录下的所以文件和目录
NSString *path=@"/Users/apple/Desktop/movie";
NSArray *arr=[fm contentsOfDirectoryAtPath:path error:nil];
NSLog(@"%@",arr);
补充:显示目录下的文件或者目录(包括子目录)
arr=[fm subpathsOfDirectoryAtPath:path error:nil];
NSLog(@"%@",arr);
NSString *path=@"/Users/apple/Desktop/movie";
NSArray *arr=[fm contentsOfDirectoryAtPath:path error:nil];
NSLog(@"%@",arr);
补充:显示目录下的文件或者目录(包括子目录)
arr=[fm subpathsOfDirectoryAtPath:path error:nil];
NSLog(@"%@",arr);
<3>创建目录,创建文件
创建目录:abc目录
第二个参数设置为yes表示创建中间目录
path=@"/Users/apple/Desktop/movie/abc";
BOOL b=[fm createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil];
NSLog(@"b=%d",b);
<4>复制文件
test.txt 复制为:note.txt
path=@"/Users/apple/Desktop/movie/test.txt";
NSString *path2=@"/Users/apple/Desktop/movie/note.txt";
[fm copyItemAtPath:path toPath:path2 error:nil];
<5>移动文件
note。txt移动到dir中
path=@"/Users/apple/Desktop/movie/note.txt";
NSString *path2=@"/Users/apple/Desktop/movie/dir/note.txt";
[fm moveItemAtPath:path toPath:path2 error:nil];
<6>删除文件
path=@"/Users/apple/Desktop/movie/test.txt";
[fm removeItemAtPath:path error:nil];
<7>文件是否存在
path = @"/Users/apple/Desktop/movie/note.txt";
b=[fm fileExistsAtPath:path];
NSLog(@"%d",b);
2.NSFileHandle文件处理类(重点)
从文件读数据,把数据写入到文件中
文件操作步骤:
1.打开文件
2.文件中读取文件:
3.保存文件(把修改的内容保存到文件中)
4.关闭文件
NSString *path=@"/Users/apple/Desktop/movie/test.txt";
读取其中数据
<1>打开文件
创建目录:abc目录
第二个参数设置为yes表示创建中间目录
path=@"/Users/apple/Desktop/movie/abc";
BOOL b=[fm createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil];
NSLog(@"b=%d",b);
<4>复制文件
test.txt 复制为:note.txt
path=@"/Users/apple/Desktop/movie/test.txt";
NSString *path2=@"/Users/apple/Desktop/movie/note.txt";
[fm copyItemAtPath:path toPath:path2 error:nil];
<5>移动文件
note。txt移动到dir中
path=@"/Users/apple/Desktop/movie/note.txt";
NSString *path2=@"/Users/apple/Desktop/movie/dir/note.txt";
[fm moveItemAtPath:path toPath:path2 error:nil];
<6>删除文件
path=@"/Users/apple/Desktop/movie/test.txt";
[fm removeItemAtPath:path error:nil];
<7>文件是否存在
path = @"/Users/apple/Desktop/movie/note.txt";
b=[fm fileExistsAtPath:path];
NSLog(@"%d",b);
2.NSFileHandle文件处理类(重点)
从文件读数据,把数据写入到文件中
文件操作步骤:
1.打开文件
2.文件中读取文件:
3.保存文件(把修改的内容保存到文件中)
4.关闭文件
NSString *path=@"/Users/apple/Desktop/movie/test.txt";
读取其中数据
<1>打开文件
fileHandleForReadingAtPath读模式
fileHandleForWritingAtPath:(NSString *)path; 写模式
fileHandleForUpdatingAtPath:(NSString *)path; 可读可写
首先以读模式打开文件
文件刚打开的 时候读写位置在文件开始
细节:文件打开失败返回空指针
NSFileHandle *fh=[NSFileHandle fileHandleForReadingAtPath:path];
//从文件中读取数据
//[fh readDataOfLength:];
if (fh != nil) {
//
[fh seekToFileOffset:3];
NSData *data=[fh readDataOfLength:9];
//NSData *data = [fh readDataToEndOfFile];
//把NSData转化为字符串
NSLog(@"data=%lu",data.length);
NSString *str=[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
//UTF8编码中 英文字母标签符号1个字节 西欧字母占2个字节 中文占三个字节
NSLog(@"str=%@",str);
}
<2>把着行数据写入str.txt中
NSString *mystr=@"The bird fly in the sky,this a quiet spring";
path=@"/Users/apple/Desktop/movie/str.txt";
//以写的模式打开文件
NSFileHandle *fh2=[NSFileHandle fileHandleForWritingAtPath:path];
//NSLog(@"%@",fh2);
if (fh2!=nil) {
//写入之前先把字符串转化为NSData类型
//str写入到文件中
NSData *date=[mystr dataUsingEncoding:NSUTF8StringEncoding];
[fh2 writeData:date];
//NSLog(@"%@",)
3.NSValue
NSValue可以把c语言的数据类型转化为oc的对象进而进行处理
NSArray限制存储数据的类型oc的对象 不能放c的类型 -(id)initWithObject:
4.NSDate时间日期管理类
获取当前时间,计算某个操作消耗的时间
<1>获取当前时间
<2>事件自定义给事输出
<3>取得各个事件
<4>计算事件间隔
NSValue可以把c语言的数据类型转化为oc的对象进而进行处理
NSArray限制存储数据的类型oc的对象 不能放c的类型 -(id)initWithObject:
//定义结构体类型
struct MyRect{
double x;
double y;
double w;
double h;
//NSMumber其实是NSValue的子类
};
typedef struct MyRect MyRect;
MyRect rect={10,10,100,190};
//通过NSValue把结构体变量转化为NSValue对象
//参数1:传入需要转到的数据的地址
//参数2:传入转化的数据类型 MyRect
NSValue *value=[[NSValue alloc] initWithBytes:&rect objCType:@encode(MyRect)];
NSArray *arr=[[NSArray alloc] initWithObjects:value,nil];
//重新解析数据
NSValue *v=[arr objectAtIndex:0];
MyRect newRect;
[v getValue:&newRect];
NSLog(@"%f %f %f %f",newRect.x,newRect.y,newRect.w,newRect.h);
4.NSDate时间日期管理类
获取当前时间,计算某个操作消耗的时间
<1>获取当前时间
<2>事件自定义给事输出
<3>取得各个事件
<4>计算事件间隔
// NSDate时间日期处理类的使用
//<1>获取当前时间
NSDate *date=[NSDate date];
NSLog(@"%@",date);
//2014-04-17 06:37:41 +0000 此为国际标准时间 中国的国家时间=国际标准时间+8小时
//<2>事件自定义给事输出
NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss:S aa"];
NSString *timeString=[dateFormatter stringFromDate:date];
NSLog(@"%@",timeString);
//<3>取得各个事件
[dateFormatter setDateFormat:@"yyyy"];
NSLog(@"%@",[dateFormatter stringFromDate:date]);
//<4>计算事件间隔
NSDate *beginDate=[NSDate date];
int sum=0;
for (int i=0; i<100000000; i++) {
sum+=i;
}
NSDate *endDate=[NSDate date];
NSTimeInterval ti=[endDate timeIntervalSinceDate:beginDate];
NSLog(@"ti = %lf",ti);