在現階手機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];
新聞熱點
疑難解答