IOS之NSFileManager 和NSFileHandle,nsfilehandle
在現階手機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://www.cnblogs.com/jerehedu/
著作權聲明:本文著作權歸煙台傑瑞教育科技有限公司和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文串連,否則保留追究法律責任的權利。
技術諮詢: