在现阶手机app的临时缓存文件渐渐增多,在app开发中对于移动设备文件的操作越来越多,我们IOS中对于文件的操作主要涉及两个类NSFileManager 和NSFileHandle,下面我们就看看如何使用这两个类:
1、文件创建
//初始化一个NSFileManager类defaultManager方法为单例模式,通过单例模式进行初始化 NSFileManager * fileManager =[NSFileManager defaultManager]; //拼接路径 NSString * path=NSHomeDirectory(); path=[path stringByAppendingPathComponent:@"deskTop/date.txt"]; //创建文件 BOOL flag=[fileManager createFileAtPath:path contents:nil attributes:nil]; if(flag){ NSLog(@"文件创建成功"); }else{ NSLog(@"文件创建失败"); }
2、创建目录
NSFileManager * fileManager =[NSFileManager defaultManager]; NSString * path=NSHomeDirectory(); path=[path stringByAppendingPathComponent:@"deskTop/PRo/cpp"]; BOOL flag=[fileManager createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil]; if(flag){ NSLog(@"创建成功"); }else{ NSLog(@"创建失败"); }
3、删除文件和目录
NSFileManager * fileManager =[NSFileManager defaultManager]; NSString * rootPath=NSHomeDirectory(); NSString * dirPath=[rootPath stringByAppendingPathComponent:@"deskTop/newFolder"]; NSArray * array=[fileManager contentsOfDirectoryAtPath:dirPath error:nil]; for(NSString * str in array){ NSString * newPath=[dirPath stringByAppendingPathComponent:str]; BOOL flag=[fileManager removeItemAtPath:newPath error:nil]; if(flag){ NSLog(@"删除成功"); }else{ NSLog(@"删除失败"); } }
对于文件的操作有很多方法我们为提及到,我们可以看下官方的API里面有很多我们可能会用到的方法
//将一个文件复制到另一个文件 [fileManager copyItemAtPath:path1 toPath:path2 error:nil]; //将一个文件移动到另一个文件 [fileManager moveItemAtPath:path1 toPath:path2 error:nil]; //获取文件里面的内容 NSData * readData=[fileManager contentsAtPath:path]
案例:我们这里可以做一个例子如何计算一个文件里面的所有行数,思路:我们首先需要读取文件里面的所有信息内容,统计行数我们只需要统计文件里的换行符的个数即可,实例如下所示:
NSFileManager * fileManager =[NSFileManager defaultManager]; NSString * rootPath=NSHomeDirectory(); NSString * dirPath=[rootPath stringByAppendingPathComponent:@"deskTop/newFolder/main.m"]; NSData * data=[fileManager contentsAtPath:dirPath]; NSString * str=[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; int count=(int)[str componentsSeparatedByString:@"/n"].count; NSLog(@"当前的总行数为%d",count);
4、文件写入
在文件的读写操作过程中我们用的最多的是NSFileHandler,我们通过该类进行文件操作
//初始化一个用于写入的文件句柄 NSFileHandle * fileHandle=[NSFileHandle fileHandleForWritingAtPath:filePath]; NSString * str=@"pppppppppppp"; //将文件光标移动到文件的最后位置 [fileHandle seekToEndOfFile]; NSData * data=[str dataUsingEncoding:NSUTF8StringEncoding]; //写入数据 [fileHandle writeData:data]; //用完之后需要关掉 [fileHandle closeFile];
5、文件的读取
NSFileHandle * fileHandle=[NSFileHandle fileHandleForReadingAtPath:filePath]; //读取到文件的末尾 NSData * data= [fileHandle readDataToEndOfFile]; //定位光标的位置 [fileHandle seekToFileOffset:2]; //查询该文件可用数据的个数 [fileHandle availableData]; //读取指定长度的文件 NSData * data=[fileHandle readDataOfLength:3]; NSString * str=[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"%@",str);//关闭句柄 [fileHandle closeFile];
新闻热点
疑难解答