OC-NSFileManager和NSFileHandle的使用
生活随笔
收集整理的這篇文章主要介紹了
OC-NSFileManager和NSFileHandle的使用
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
對于objective-c中的有關文件目錄的操作和文件的操作。
通過一道習題來熟悉NSFileManager和NSFileHandle中的方法的使用。
本題原意:將指定目錄下所有后綴名為XXX(可以自己輸入)的文件中字符串為@"him"(可以自己輸入)改為@"me"(可以自己輸入)
1.首先新建了一個文件解析類ReplaceStringInDirectory.h
@interface ReplaceStringInDirectory : NSObject /*** 替換指定文件中指定的所有字符串為另一個字符串*/ + (void)replaceInDirectory:(NSString *)pathFile withOldString:(NSString *)oldString withNewString:(NSString *)newString;//替換指定目錄下所有指定類型的文件中的字符串 + (void)replaceInDirectory:(NSString *)pathDirectory withOldString:(NSString *)oldString withNewString:(NSString *)newString InType:(NSString *)typeFile; @end2.在對應的ReplaceStringInDirectory.m文件中實現(xiàn).h文件中的兩個方法
/*** 替換指定文件中指定的所有字符串為另一個字符串*/ + (void)replaceInDirectory:(NSString *)pathFile withOldString:(NSString *)oldString withNewString:(NSString *)newString {//文件目錄管理器 一個單例對象NSFileManager *fm = [NSFileManager defaultManager];//先備份一份文件在相同的路勁下,并以指定文件格式[fm copyItemAtPath:pathFile toPath:[pathFile stringByAppendingString:@"_bak"] error:nil];//創(chuàng)建文件句柄 文件指針 用以操作文件的內(nèi)容NSFileHandle *fh = [NSFileHandle fileHandleForUpdatingAtPath:pathFile];//讀取文件的信息NSData *data = [fh readDataToEndOfFile]; //這樣會使的當前文件指針fh指向末尾NSString *dataString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];//判斷當前字符串對象中是否包含有oldWordif ([dataString containsString:oldString]) {dataString = [dataString stringByReplacingOccurrencesOfString:oldString withString:newString];}//將文件清空,之后將字符串寫回到文件中[fh truncateFileAtOffset:0];[fh writeData:[dataString dataUsingEncoding:NSUTF8StringEncoding]];//同步文件。 關閉線程鎖 [fh synchronizeFile];[fh closeFile]; }//替換指定目錄下所有指定類型的文件中的字符串 + (void)replaceInDirectory:(NSString *)pathDirectory withOldString:(NSString *)oldString withNewString:(NSString *)newString InType:(NSString *)typeFile {NSFileManager *fm = [NSFileManager defaultManager];//深層次的遍歷目錄NSArray *arrayFile = [fm subpathsOfDirectoryAtPath:pathDirectory error:nil];for (NSString *item in arrayFile) {//獲取文件的后綴名if ([typeFile isEqualToString:[item pathExtension]]) {[self replaceInDirectory:[pathDirectory stringByAppendingFormat:@"/%@",item] withOldString:oldString withNewString:newString];}} }需要注意是:?NSFileManager *fm = [NSFileManager defaultManager];生成的對象是一個單例對象。
//創(chuàng)建文件句柄 文件指針 用以操作文件的內(nèi)容
NSFileHandle *fh = [NSFileHandle fileHandleForUpdatingAtPath:pathFile];
該對象是以可讀可寫的方式創(chuàng)建的,創(chuàng)建文件句柄(指針),有三種方式 ?1.只讀 ? 2.只寫 ? 3.可讀可寫
?
轉(zhuǎn)載于:https://www.cnblogs.com/BeyondAverage0908/p/4597424.html
總結
以上是生活随笔為你收集整理的OC-NSFileManager和NSFileHandle的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WiFi网络编程(带OTA功能)
- 下一篇: 算法图解思维导图