文件管理器與文件連接器之間的區(qū)別:

  • 文件管理器(NSFileManager)此類主要是對文件進行創(chuàng)建/刪除/改等操作,以及文件的獲取

  • 文件連接器(NSFileHandle)此類主要是對文件內(nèi)容進行讀取和寫入操作.是把NSData,通過連接器一個字節(jié)一個字節(jié)的寫入/讀取文件(NSData<->NSFileHandle<->文件)

使用步驟:

  1. 文件對接并獲取一個NSFileHandle對象
  2. 讀寫操作
  3. 關(guān)閉對接
    注意:NSFileHandle類并沒有提供創(chuàng)建文件的功能.必須使用NSFileManager方法來創(chuàng)建文件.因此,在使用下一頁表中的方法時,都是保證文件已經(jīng)存在,否則返回nil.

文件管理器的簡單例子

- (void)fileManger{
//初始化一個NSFileManager對象(使用單例)
    NSFileManager *manager = [NSFileManager defaultManager];
//1:獲取根路徑
    NSString *root = NSHomeDirectory();
    NSLog(@"%@",root);
    
    //2:創(chuàng)建文件
    root = [root stringByAppendingString:@"/text/myApp"];
    //3:創(chuàng)建目錄      withIntermediateDirectories:是否在當(dāng)前路徑下創(chuàng)建/text/myApp
    [manager createDirectoryAtPath:root withIntermediateDirectories:YES attributes:nil error:nil];
    
    
    NSString *rootPath = [root stringByAppendingString:@"/text3/txt"];
    [manager createDirectoryAtPath:rootPath withIntermediateDirectories:YES attributes:nil error:nil];
#pragma mark---文件管理   添加----
//必須要在文件路徑下添加文檔,不然不能對內(nèi)容進行復(fù)制,讀寫
  NSString *  root1 = [root stringByAppendingString:@"/字符串.txt"];
    NSString *str = @"大家fghfghfhggfh好";
    BOOL result = [str writeToFile:root1 atomically:YES encoding:4 error:nil];
//[manager createFileAtPath:root1 contents:[str dataUsingEncoding:NSUTF8StringEncoding] attributes:nil]
    if (result) {
        NSLog(@"我成功了");
    }else{
        NSLog(@"我失敗了");
    }
//    NSLog(@"root的路徑為:%@",root);
    
    
    rootPath = [rootPath stringByAppendingString:@"字符串2.txt"];
#pragma mark---文件復(fù)制---
    result = [manager copyItemAtPath:root1 toPath:rootPath error:nil];
    if (result) {
        NSLog(@"成功");
    }else{
        NSLog(@"失敗");
    }
     NSLog(@"復(fù)制成功后路徑:%@",rootPath);
    
    
#pragma mark ---文件移除---
   // 移除的是創(chuàng)建的文件, 而不是所在的文件夾
        [manager removeItemAtPath:root error:nil];
    NSLog(@"移除后路徑:%@",root);

}


//  判斷文件是否存在
    if ([manager fileExistsAtPath:rootPath])
    {
        NSLog(@"6: 證明文件存在");
    }

 // : 比較兩文件是否相等
    
    if([manager contentsEqualAtPath:root1 andPath:rootPath])
    {
        NSLog(@"9: 兩者相等'");
    }





  

文件連接器的簡單例子

- (void)fileHandle
{
    // 1: 創(chuàng)建一個文件
    NSString *filePath = [NSHomeDirectory() stringByAppendingString:@"/text.txt"];
    NSString *fileContent = @"最是人間留不住,朱顏辭鏡花辭樹";
    NSFileManager *manager = [NSFileManager defaultManager];
    if ([manager createFileAtPath:filePath contents:[fileContent dataUsingEncoding:NSUTF8StringEncoding] attributes:nil]) {
        NSLog(@"1: 創(chuàng)建成功%@",filePath);
    }
    
    // 2: 創(chuàng)建第二個文件 用于寫數(shù)據(jù)  ( 必須要有這個文件,才能進行內(nèi)容的操作寫入 )
    NSString *copyPath = [NSHomeDirectory() stringByAppendingString:@"/text2.txt"];
    [[NSFileManager defaultManager] createFileAtPath:copyPath contents:nil attributes:nil];
    
    
    // 3: 打開text.txt 用于讀操作
    NSFileHandle *fileHandleRead = [NSFileHandle fileHandleForReadingAtPath:filePath];
    if (!fileHandleRead)
    {
        NSLog(@"3: 打開filepath讀功能失敗");
    }
    
    // 4: 打開text2.txt 的寫入操作
    NSFileHandle *fileHandleWrite = [NSFileHandle fileHandleForWritingAtPath:copyPath];
    if (!fileHandleWrite)
    {
        NSLog(@"4: 打開text2.txt 的寫入操作 失敗");
    }
    // 5: 創(chuàng)建 NSData 實例接收fileHandleRead數(shù)據(jù)
    NSData *dataTemp = [fileHandleRead readDataToEndOfFile];
    // 6: 寫入到 fileHandleWrite 里面
    [fileHandleWrite writeData:dataTemp];
    // 7: 看能否從CopyPath中取出數(shù)據(jù)  驗證效果
    NSLog(@"從CopyPath中讀取數(shù)據(jù) --> %@",[NSString stringWithContentsOfFile:copyPath encoding:NSUTF8StringEncoding error:nil]);

    
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末之拨,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子屡穗,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異狈谊,居然都是意外死亡,警方通過查閱死者的電腦和手機沟沙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門河劝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人矛紫,你說我怎么就攤上這事赎瞎。” “怎么了颊咬?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵务甥,是天一觀的道長。 經(jīng)常有香客問我喳篇,道長敞临,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任麸澜,我火速辦了婚禮挺尿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己编矾,他們只是感情好熟史,可當(dāng)我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著窄俏,像睡著了一般蹂匹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上裆操,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天怒详,我揣著相機與錄音,去河邊找鬼踪区。 笑死昆烁,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的缎岗。 我是一名探鬼主播静尼,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼传泊!你這毒婦竟也來了鼠渺?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤眷细,失蹤者是張志新(化名)和其女友劉穎拦盹,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體溪椎,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡普舆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了校读。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沼侣。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖歉秫,靈堂內(nèi)的尸體忽然破棺而出蛾洛,到底是詐尸還是另有隱情,我是刑警寧澤雁芙,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布轧膘,位于F島的核電站,受9級特大地震影響却特,放射性物質(zhì)發(fā)生泄漏扶供。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一裂明、第九天 我趴在偏房一處隱蔽的房頂上張望椿浓。 院中可真熱鬧太援,春花似錦、人聲如沸扳碍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽笋敞。三九已至碱蒙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間夯巷,已是汗流浹背赛惩。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留趁餐,地道東北人喷兼。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像后雷,于是被迫代替她去往敵國和親季惯。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容