你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS開發-文件操作

iOS開發-文件操作

編輯:IOS開發綜合

                 目錄操作和文件管理

 

學習目的

1.了解單例

2.掌握NSFileManager類常用的文件管理操

3.掌握NSFileHandle類常用的文件數據操作

4.理解NSData類的常用操作

5.掌握Plist文件讀寫

——————————————————————

通常順序在運轉中或許順序完畢之後,需求保管一些信息,而且需求耐久化存儲信息,比方登陸信息、視頻播放記載、珍藏記載等等,那麼我們可以采用以下幾種方式對數據停止耐久化保管.

 

1.1單例形式(以後對象有且僅有一個實例)

                 

益處:只要一個實例,數據共享。

                  

單例形式是一種常用的設計形式。在使用這個形式時,

單例對象的類必需保證只要一個實例存在,而且自行實例化並向整個

零碎提供這個實例。假如希望在零碎中某個類的對象只能存在一個,

單例形式是最好的處理方案。

 

其實單例相似C言語中的全局變量

在整個順序聲明周期內,該對象只要一份存在內存中

可以在多個對象之間共享數據。

 

 

 

<1>單例創立

(1)  單例的創立辦法通常以default/shared/standard 等等掃尾

 

 

(2) 單例不需求release 或許 autorelease ,由於單例的生命周期為整個順序。

 

 

2.辦法:

2.1 NSFileManager

<1>創立文件管理器單例對象

 

[NSFileManager defaultManager]

 

<2>遍歷目錄下的內容

//淺度遍歷以後目錄下的文件

/*

         contentsOfDirectoryAtPath:要遍歷的途徑

         error:錯誤信息

         */

NSArray *array = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:&error];

 

//深度遍歷

 array = [fileManger subpathsOfDirectoryAtPath:path error:nil];

 

<3>判別文件能否存在

/*

         判別文件能否存在的時分一定要加後綴。

                      path中假如有後綴表示文件,不加後綴表示文件夾。

         */

        BOOL isExist = [fileManger fileExistsAtPath:path];

        

        if (isExist)

        {

            NSLog(@"存在");

        }

        else

        {

            NSLog(@"不存在");

        }

 

<4>創立文件和目錄

//創立文件

  /*

         createFileAtPath:要創立文件的途徑

         contents:文件內容(NSData類型)

         attributes:文件屬性,普通為nil,nil表示采用默許屬性。

         */

        //留意:假如文件曾經存在會掩蓋

        BOOL createOK = [fileManger createFileAtPath:path contents:nil attributes:nil];

 

 

//創立目錄

/*

         createDirectoryAtPath:要創立的目錄,假如文件夾曾經存在不會掩蓋

         withIntermediateDirectories:能否有兩頭目錄

         attributes:文件夾的屬性,nil表示默許屬性

         error:錯誤信息

         */

        createOK = [fileManger createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:&error];

 

 

<5>拷貝文件/目錄

                  //目錄與目錄拷貝

        [fileManger copyItemAtPath:fromFilePath toPath:toDirPath error:&error];

 

        //文件與文件拷貝

        [fileManger copyItemAtPath:fromFilePath toPath:toFilePath error:&error];

 

<6>挪動文件/目錄

        [fileManger moveItemAtPath:frompath toPath:toPath error:nil];

 

<7>刪除文件/目錄

                    [fileManger removeItemAtPath:toPath error:nil];

 

<8>獲取文件屬性

       NSDictionary *attributes = [fileManger attributesOfItemAtPath:path error:nil];

       NSLog(@"文件的屬性:%@",attributes);

 

 

 

 

2.2 NSData(二進制數據)

<1>把NSString轉換為NSData

NSData *data = [string dataUsingEncoding:

NSUTF8StringEncoding]

 

       

<2>把NSData轉換為NSString

NSString *convertString = [[NSString alloc] 

initWithData:data encoding:NSUTF8StringEncoding]

 

 

2.3 NSFileHandle(文件句柄類)

對文件停止讀寫首先需求NSFileHandle翻開文件,

NSFileHandle對文件停止讀寫都是NSData類型的二進制數據.

 

<1>翻開文件辦法

//只讀的句柄

        NSFileHandle *readOnlyHandle = [NSFileHandle fileHandleForReadingAtPath:path];

        //只寫的句柄

        NSFileHandle *writeOnlyHandle  = [NSFileHandle fileHandleForWritingAtPath:path];

        //讀寫句柄

        NSFileHandle *readAndWriteHandle = [NSFileHandle fileHandleForUpdatingAtPath:path];

           

 

<2>讀指定長度的數據(單位為字節)

  //讀取5個字節數據

NSData *data = [readOnlyHandle readDataOfLength:5];

                   

 

<3>從以後偏移量讀到文件尾

[readOnlyHandle readDataToEndOfFile]

[readAndWriteHandle readDataToEndOfFile]

 

 

<4>設置文件偏移量(單位為字節)

[readOnlyHandle seekToFileOffset:偏移的字節數];

 

 

<5>將文件偏移量定位到文件尾

[readOnlyHandle seekToEndOfFile];

                       

 

<6>寫文件(不掩蓋的時分需求設置偏移量)

          //1.先把偏移量指到文件尾部

[readAndWriteHandle seekToEndOfFile];

          //2.寫入到指定途徑

[readAndWriteHandle writeData:[@"abcdef" dataUsingEncoding:NSUTF8StringEncoding]];

          

 

<7>封閉文件句柄

         //封閉文件句柄,封閉後(不需求)就不能再操作文件了

[readAndWriteHandle closeFile];

[readOnlyHandle closeFile];

[writeOnlyHandle closeFile];

 

 

 

 

 

 

 

 

 

 

3  Plist

<1> 什麼是plist文件, plist文件的作用

    1.plist文件:property list  屬性列表文件,文件的內容只能是 NSString,NSNumber,NSDate,NSData,NSArray,NSDictionary類的對象內容,不能保管其他類型數據

 

2.作用:對一些登陸注冊信息或許順序的配相信息(小數據)停止耐久化存儲

 

<2> 如何創立plist文件, 如何編輯plist文件

Plist文件內容的格式是XmlRss/ target=_blank class=infotextkey>Xml語法格式

 

1.Xcode創立

1.點擊右鍵—>New File 彈出一對話框

2.IOS順序選中IOS欄中的Resource或許Mac順序選中OS X 欄中的resource 

3.點擊Resource中的Property List 創立plist文件

4.點擊文件中的'+'可以添加數據

 

2.代碼創立

假如要把 NSString NSNumber NSDate NSData NSArray NSDictionary 的對象寫入文件普通就用plist文件  

我們需求這些數據保管到一個數組或許字典中,然後調用數組和字典的相關函數把數 組NSArray或許字典NSDictionary寫入plist文件

//NSArray和NSDictionary寫文件辦法

- (BOOL)writeToFile:(NSString *)path atomically:

(BOOL)useAuxiliaryFile;

 

<3> 如何在順序中讀取plist文件數據

Plist文件的根節點(數據的最外層)通常是數組或許字典

假如Plist文件的根節點是字典那麼運用字典的類辦法

+ (id)dictionaryWithContentsOfFile:(NSString *)path;

讀寫Plist文件

假如根節點是數組那麼運用數組的類辦法

+ (id)arrayWithContentsOfFile:(NSString *)path;

讀取Plist文件。

注:上述兩個辦法只能讀取Plist文件,不能讀取其他格式的文件。

 

【iOS開發-文件操作】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved