學習目標
- NSFileManager類常用的文件管理操
- NSFileHandle類常用的文件數據操作
- NSData類的常用操作
-
NSFileManager
<1>創(chuàng)建文件管理器單例對象
// 初始化
NSFileManager * fm = [NSFileManager defaultManager];
<2>遍歷目錄下的內容
//淺度遍歷 僅僅遍歷當前文件夾下的第一層子文件夾
// contentsOfDirectoryAtPath睁枕,指定路徑下的第一層子文件夾(文件內容)
- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error;
//深度遍歷(又稱為遞歸便利)
//遍歷指定路徑下的所有文件夾和文件
//指定路徑下的子文件夾下的所有文件
- (NSArray *)subpathsOfDirectoryAtPath:(NSString *)path error:(NSError **)error
<3>創(chuàng)建文件
//創(chuàng)建普通文件
//createFileAtPath,在指定路徑下官边,創(chuàng)建文件
//第二個參數contents,是指在創(chuàng)建文件的同時外遇,附上的文件內容
//第三個參數attributes 注簿,如果寫nil, attributes會有系統(tǒng)自動管理
- (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;
//創(chuàng)建目錄
//就是在指定路徑下創(chuàng)建文件夾
//withIntermediateDirectories,是否創(chuàng)建沒有路徑
- (BOOL)createDirectoryAtPath:(NSString *)path withIntermediateDirectories:(BOOL)createIntermediates attributes:(NSDictionary *)attributes error:(NSError **)error ;
<4>拷貝文件/目錄
//copyItemAtPath,在指定路徑下拷貝項目(文件夾跳仿,也能文件)
//srcPath,原路徑
//toPath诡渴,目標路徑
- (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error ;
<5>移動文件/目錄
//moveItemAtPath,移動指定路徑下的文件或目錄,到另外一個指定的路徑
//剪切的同時菲语,也能修改目錄或文件的名字
- (BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error ;
<6>刪除文件/目錄
//removeItemAtPath 刪除指定路徑下的文件夾或者文件
- (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error;
<7>獲取文件屬性
// attributesOfItemAtPath 查看指定目錄下的文件或者文件夾的屬性
- (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error妄辩;
<8>判斷文件是否存在
- (BOOL)fileExistsAtPath:(NSString *)path;
-
NSFileHandle
NSFileHandle 對文件進行操作惑灵,讀,寫眼耀,設置文件指針偏移量的操作
<1>打開文件方法
//以只讀方式打開
+ (id)fileHandleForReadingAtPath:(NSString *)path;
//以只寫方式打開
+ (id)fileHandleForWritingAtPath:(NSString *)path;
//以讀寫方式打開
+ (id)fileHandleForUpdatingAtPath:(NSString *)path;
<2>讀指定長度的數據
//readDataOfLength 讀取指定長度的字符串
//得知英支,每個漢字在編譯器中占三個字節(jié)
- (NSData *)readDataOfLength:(NSUInteger)length;
<3>從當前偏移量讀到文件尾
//是將文本中所有的數據一次性讀到內存中
- (NSData *)readDataToEndOfFile;
<4>設置文件偏移量
//2.txt中的文字abcefg,如果偏移量為2的話,那么就是從c字符往后讀
//偏移量的默認值為0
- (void)seekToFileOffset:(unsigned long long)offset;
<5>將文件偏移量定位到文件尾
//將指針指向文本的結尾
- (unsigned long long)seekToEndOfFile;
<6>寫文件
//(NSData *)data,內存數據類型
// NSString *string=@“abc”,[string dataUsingEncoding:NSUTF8StringEncoding]
- (void)writeData:(NSData *)data;
<7>將緩沖區(qū)內容立即同步寫入磁盤
- (void)synchronizeFile;
-
NSData
//如果把字符串轉化為NSData
NSString *str = @"welcome to beijing";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
//NSData 轉化為字符串
NSString *newStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];