亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

iOS階段學習第17天筆記(NSFileManager-NSFileHandle-文件操作)

2019-11-14 18:43:10
字體:
來源:轉載
供稿:網友

iOS學習(OC語言)知識點整理

一、單例模式

 

1)單例是一種編程思想,一個設計模式,與語言無關在采用了單例對象的應用程序中,需要單例類自行提供實例化單例對象,

     不管實例化單例對象多少次,只有一個對象存在,這個對象是全局的,能夠被整個應用程序共享,訪問

 

2)使用單例模式時使用類提供的類方法獲取單例對象,盡量不要用alloc init的方法獲取單例對象

 

3)單例類提供類方法獲取單例對象時類方法一般以sharedXX/standedXX/defaultXX開頭 

實例代碼:  

#import "Plane.h"static Plane *plane=nil;//定義一個靜態的全局變量@implementation Plane//獲取單例對象的方法 +(Plane *)sharedPalne{    //解決數據同步(當一個線程訪問時,其他的線程不能操作    @synchronized(self){        if(plane==nil){             plane=[[Plane alloc]init];       }    }    return plane;}//當調用alloc方法時會執行此方法 +(id)allocWithZone:(struct _NSZone *)zone{    NSLog(@"%@",NSStringFromSelector(_cmd));    if(plane==nil){        plane=[super allocWithZone:zone];    }    return plane;}@end

 

二、NSFileManager  文件/文件夾 的操作

 

1)NSFileManager 用于對文件或目錄(文件夾)管理的單例類。

 

2)文件管理類的實例化方法 例如:

1  NSFileManager *fm=[NSFileManager defaultManager];

  

3)fileExistsAtPath 用于判斷文件是否存在 例如: 

1 BOOL ret=[fm fileExistsAtPath:@"/Users/kingkong/Desktop/Test/test.txt"];

 

4)createFileAtPath 用于創建文件 第一個參數是文件名,第二個參數是文件的初始值,第三個參數是文件的屬性 例如:    

1 BOOL ret=[fm createFileAtPath:@"/Users/kingkong/Desktop/Test/test.txt" contents:nil attributes:nil];

  

5)copyItemAtPath 用于復制文件:將某一個文件復制成另一個文件,第三個參數:回調錯誤信息 例如:

 1  NSError *error=nil;//用于接收錯誤信息  3  NSString  *curpath=@"/Users/kingkong/Desktop/Test/test.txt”;  5  NSString  *topath=@"/Users/kingkong/Desktop/Test/test2.txt”;  7  ret=[fm copyItemAtPath: curpath  toPath: topath  error:&error];  9  if(error!=nil){ 11    NSLog(@"error:%@",[error userInfo]); 13  }

  

6)moveItemAtPath 用于移動/重命名文件;將某個路徑下的文件移動到另一個路徑下的文件(目標路徑一定要指定文件名),

     如果源路徑與目   標路徑下的文件名不同,同時重命名 例如: 

1 NSString  *curpath=@"/Users/kingkong/Desktop/Test/test.txt”;2 3 NSString  *topath=@"/Users/kingkong/Desktop/Test/test2.txt”;4 5 [fm moveItemAtPath: curpath toPath: topath error:nil];

 

7)attributesOfItemAtPath 獲取文件的屬性 例如: 

1 NSString  *curpath=@"/Users/kingkong/Desktop/Test/test.txt";2 3 NSDictionary *dict= [fm attributesOfItemAtPath: curpath error:nil];4 5 //獲取屬性字典中該文件的大小6 7 NSLog(@"size:%@",[dict objectForKey:NSFileSize]);

 

8)removeItemAtPath 用于刪除指定路徑下的文件 例如: 

1 NSString  *path=@"/Users/kingkong/Desktop/Test/test.txt”;2 3 BOOL ret=[fm removeItemAtPath: path error:nil];

  

9)NSData:當對文件操作(寫數據到文件和從文件中讀數據)和從網絡上獲取數據,需要將數據轉換為純粹的二進制形式,

     NSData就是二進制形式的緩存對象,相當于C中的char buf[255] 例如: 

1 NSString  *path=@"/Users/kingkong/Desktop/Test/test.txt”;2 3 NSData *content=[fm contentsAtPath: path]; 

  

10)NSData數據轉換為NSString類型數據 例如:       

1  //NSData---->NSString,將NSData對象轉換為字符串2 3 NSString *scontent=[[NSString alloc]initWithData:content  encoding:NSUTF8StringEncoding];      

  

11)NSString類型的數據轉換為NSData數據 例如:

1 NSString *str=@"hello China!";2 3 //NSString---->NSData;將字符串轉換為NSData數據(寫入文件或傳輸到網絡上)4 5 NSData *data2=[str dataUsingEncoding:NSUTF8StringEncoding];

 

12)createFileAtPath … contents 建文件并指定寫入內容 例如: 

1 NSString  *path=@"/Users/kingkong/Desktop/Test/test.txt”;2 3 [fm createFileAtPath:path contents:data2  attributes:nil];

 

13)fileExistsAtPath… isDirectory 判斷目錄是否存在(在文件/目錄存在的情況下,通過第二個參數獲取是否是目錄/文件) 例如: 

1 BOOL isDir;//可能結果有:-1,0,12 3 NSString  *path=@"/Users/kingkong/Desktop/Test/test.txt”;4 5 BOOL ret=[fm fileExistsAtPath:path isDirectory:&isDir];

 

14)contentsOfDirectoryAtPath 淺遍歷:獲取目錄下的子目錄和文件名 例如: 

1 NSString  *path=@"/Users/kingkong/Desktop/Test”;2 3 NSArray *array=[fm contentsOfDirectoryAtPath: path error:nil];4 5 NSLog(@"array%@",array);

 

15)subpathsAtPath  深遍歷:獲取目錄下所有的內容(包括子目錄下的所有的內容) 例如: 

1 NSString  *path=@"/Users/kingkong/Desktop/Test”;2 3 NSArray *array2=[fm subpathsAtPath:path];4 5 NSLog(@"array2:%@",array2);

 

16)currentDirectoryPath 獲取當前應用程序所在目錄 例如: 

1 NSString* currentPath=[fm currentDirectoryPath];2 3 NSLog(@"%@",currentPath);

 

17)createDirectoryAtPath… withIntermediateDirectories  創建目錄,第一個參數是目錄名,第二個參數是 

       當目錄不存在時是否需要創建其上一級不存在的目錄(中間目錄) 

1 NSString  *path=@"/Users/kingkong/Desktop/Test/File”;2 3 BOOL ret=[fm createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil];

   

三、NSFileHandle 對文件進行讀寫操作

 

1)fileHandleForReadingAtPath 創建一個只讀文件的對象(句柄) 例如: 

1 NSString *path=@"/Users/kingkong/Desktop/Test/test.txt”;2 3 NSFileHandle *readHandle=[NSFileHandle fileHandleForReadingAtPath: path];

 

2)readDataOfLength 讀取文件中指定長度的內容 例如:

NSData *data=[readHandle readDataOfLength:3];NSString *sdata=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];NSLog(@"%@",sdata);

 

3)readDataToEndOfFile 從當前位置讀取內容到文件結束 例如: 

1 data=[readHandle readDataToEndOfFile];2 3 sdata=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];4 5 NSLog(@"%@",sdata);6 7 [readHandle closeFile];//讀取文件內容結束(注意如果上次讀取過沒關閉再次讀取時會從上次讀取結束位置開始讀取)

 

4)fileHandleForWritingAtPath 創建一個只寫文件的對象 例如: 

 1 NSFileHandle *writeHandle=[NSFileHandle fileHandleForWritingAtPath:path"]; 2  3 NSString *s1=@"hello"; 4  5 //seekToEndOfFile 將對象指針移到文件末尾(實現追加內容) 6  7 [writeHandle seekToEndOfFile]; 8  9 [writeHandle writeData:[s1 dataUsingEncoding:NSUTF8StringEncoding]];10 11  //synchronizeFile將數據同步寫入文件中12 13 [writeHandle synchronizeFile];14 15 [writeHandle closeFile];//表明操作結束

  

5)truncateFileAtOffset 從指定位置字符開始截斷文件內容,保留多少個字符,設置為0,再寫入相當于清空重寫 例如: 

1  [writeHandle truncateFileAtOffset:4];

 

6)seekToFileOffset 從指定位置字符開始寫入文件,覆蓋部分內容 例如: 

1    [writeHandle seekToFileOffset:2];

 

四、關于Path (文件路徑)的操作

 

 1)pathComponents 獲取路徑的各部分 例如: 

1 NSString *path=@"/Users/kingkong/Desktop/Test/text.txt”;2 3 NSArray *array1= [path pathComponents];4 5 NSLog(@"array1:%@",array1);

 

 2)pathExtension 獲取文件后綴名 例如:  

1 NSLog(@"%@",[path pathExtension]);//結果:txt

 

3)isAbsolutePath 判斷是否是絕對路徑:以/開頭的路徑 例如: 

1  NSLog(@"%d",[path isAbsolutePath]);//結果:1

 

4)lastPathComponent 獲取路徑的最后一部分  例如: 

1  NSLog(@"last:%@",path.lastPathComponent);//結果:text.txt

 

5)stringByAppendingPathComponent 在一個路徑后添加另一個路徑 例如: 

1 NSLog(@"%@",[path stringByAppendingPathComponent:@"files”]);2 3 //結果:/Users/kingkong/Desktop/Test/text.txt/files

 

6)stringByAppendingPathExtension 為路徑添加擴展名 例如: 

1 NSLog(@"%@",[path stringByAppendingPathExtension:@"m"]);2 3 //結果:/Users/kingkong/Desktop/Test/text.txt.m

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩小视频网址| 国产精品mp4| 国产精品视频午夜| 亚洲少妇激情视频| 国产亚洲精品va在线观看| 久久久亚洲欧洲日产国码aⅴ| 日本成人在线视频网址| 国产在线a不卡| 夜夜嗨av一区二区三区免费区| 国产日韩精品在线播放| 午夜免费日韩视频| 欧美日韩国产黄| 国产福利精品av综合导导航| 8x拔播拔播x8国产精品| 美日韩精品免费视频| 美女久久久久久久久久久| 亚洲人成人99网站| 国内精品国产三级国产在线专| 国产精品丝袜久久久久久不卡| 色偷偷噜噜噜亚洲男人| 日本sm极度另类视频| yw.139尤物在线精品视频| 欧美裸体视频网站| 日韩动漫免费观看电视剧高清| 欧美精品九九久久| 久久中文字幕视频| 91国产高清在线| 欧美激情三级免费| 亚洲国产91精品在线观看| 国产精品国产三级国产专播精品人| 欧美壮男野外gaytube| 日av在线播放中文不卡| 96sao精品视频在线观看| 亚洲毛片在线观看.| 少妇av一区二区三区| 久久夜精品香蕉| 欧美性受xxx| 91亚洲精品在线观看| 久久久久久这里只有精品| 大伊人狠狠躁夜夜躁av一区| 日韩av电影中文字幕| 欧美成人午夜影院| 亚洲一级片在线看| 欧美在线播放视频| 国内精品国产三级国产在线专| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲免费福利视频| 欧美日韩中文字幕在线| 8x海外华人永久免费日韩内陆视频| 在线视频欧美日韩| 亚洲国产精品成人精品| 国产视频亚洲视频| 久久久午夜视频| 久久久国产精品x99av| 国产精品一区二区av影院萌芽| 成人精品视频99在线观看免费| 欧美精品videofree1080p| 亚洲欧美一区二区精品久久久| 亚洲欧美第一页| 久久亚洲国产成人| 国产一区二区三区视频在线观看| 黑人与娇小精品av专区| 亚洲第一网站男人都懂| 亚洲图片在区色| 久久91精品国产91久久跳| 国产a∨精品一区二区三区不卡| 第一福利永久视频精品| 日本一区二区三区四区视频| www.欧美三级电影.com| 国产欧美日韩丝袜精品一区| 亚洲a级在线播放观看| 欧亚精品中文字幕| 亚洲欧美在线免费观看| 91伊人影院在线播放| 亚洲精品成a人在线观看| 97精品一区二区视频在线观看| 中文字幕精品www乱入免费视频| 国产精品高潮视频| 国产精品影片在线观看| 亚洲一区二区三区久久| 欧美乱妇40p| 日韩欧美国产成人| 日韩大片免费观看视频播放| 欧美日韩亚洲91| 欧美午夜宅男影院在线观看| 欧美成人一二三| 亚洲最大成人免费视频| 欧美国产一区二区三区| 久久免费视频网| 2019中文字幕在线| 亚洲久久久久久久久久| 欧美日韩精品在线播放| 欧美专区国产专区| 精品国产福利视频| 午夜精品久久久久久99热软件| 777国产偷窥盗摄精品视频| 欧美性做爰毛片| 亚洲人成网站999久久久综合| 国产欧美一区二区| 亚洲一区二区在线播放| 国产精品劲爆视频| 欧美激情国产精品| 97在线视频精品| 国产精品久久久久福利| 国内偷自视频区视频综合| 国产午夜精品一区理论片飘花| 亚洲嫩模很污视频| 成人免费视频xnxx.com| 91亚洲精华国产精华| 久久久亚洲网站| 国产日本欧美一区二区三区在线| 福利一区福利二区微拍刺激| 日韩精品极品在线观看播放免费视频| 97视频免费观看| 中文字幕日本欧美| 97精品一区二区三区| 91精品久久久久久久久久久久久久| 久久夜精品va视频免费观看| 久久精品最新地址| 亚洲精品女av网站| 97精品一区二区三区| 亚洲香蕉伊综合在人在线视看| 日韩av在线高清| 国产精品香蕉av| 91精品国产综合久久香蕉最新版| 在线观看亚洲区| 国产v综合v亚洲欧美久久| 国产精品亚洲网站| 亚洲aa在线观看| 欧美视频在线免费| 精品女厕一区二区三区| 国产亚洲精品久久| 亚洲最新av在线| 日韩精品欧美国产精品忘忧草| 亚洲大胆人体视频| 欧美亚洲国产精品| 国产精品美女免费看| 亚洲激情在线观看| 欧美日韩国产黄| 亚洲国产精品一区二区久| 国产成人精品综合| 久久亚洲精品小早川怜子66| 亚洲区在线播放| 国产拍精品一二三| 91在线|亚洲| 久久久噜噜噜久久中文字免| 国产97在线|日韩| 精品国产91久久久久久| 国产欧美精品久久久| 一个人看的www欧美| 欧美尺度大的性做爰视频| 国产在线观看精品一区二区三区| 高清欧美性猛交xxxx| 久久综合色88| 亚洲视频欧美视频| 亚洲va男人天堂| 国产aaa精品| 亚洲美女激情视频| 欧美精品制服第一页| 国产亚洲精品一区二区| 日韩欧美亚洲成人| 欧美精品videossex88| 亚洲精品不卡在线| 亚洲第一精品夜夜躁人人爽|