在現階手機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];
作者:傑瑞教育
出處:http://blog.csdn.net/jerehedu/
版權聲明:本文版權歸煙臺傑瑞教育科技有限公司和CSDN共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
技術諮詢:
出處:http://blog.csdn.net/jerehedu/
版權聲明:本文版權歸煙臺傑瑞教育科技有限公司和CSDN共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
技術諮詢: