91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

<OC的文件操作>

發布時間:2020-06-16 21:38:56 來源:網絡 閱讀:2532 作者:飛奔的土豆 欄目:開發技術
NSFileManager 文件管理器完成文件的創建、移動、拷貝等管理操作
1.查詢文件和目錄
 OC中查詢路徑下的目錄主要分為淺度遍歷和深度遍歷。
 淺度遍歷
 NSFileManager * manager = [NSFileManager defaultManager];//創建文件管理器,+方法
 NSError * error = nil; //存數錯誤信息
 NSArray * array = [manager contentsOfDirectoryAtPath:@"/tmp" error:&error];
 //查詢目錄“/tmp”下的文件和目錄,此函數返回值類型為NSArray *
 這種查詢方法,只看一級目錄,只看所查目錄,不看子目錄
 深度遍歷
 NSArray * array = [manager subpathsOfDirectoryAtPath: @"/tmp" error: &error];
 這種方法查看所查目錄和其所有子目錄下的文件
2.創建目錄
 [manager createDirectoryAtPath:@"./1/2" withIntermediateDirectories:YES attributes:nil error:&error];
 //第一個參數指目錄創建的位置,這里”./”,為當前目錄,指程序所在目錄
 //第二個參數,是否創建中間目錄,意思為我們目的創建2目錄,若1無的話,先創建1,再創建2
 //第三個,指目錄的屬性,其權限等東西,我們可以設為nil暫時不考慮
3.創建文件
 [manager createFileAtPath:@"./hello/world/1.txt" contents:nil attributes:nil];//創建一個名為1.txt的文件
 //第二個參數,指以什么內容創建,nil為空文件
 //第三個參數,文件的亞屬性,我們這里不考慮,nil設置
 //此函數返回值為BOOL型,YES創建成功,NO失敗
4.拷貝目錄或文件
 [manager copyItemAtPath:@"./hello/world" toPath:@"./world" error:&error];
 //拷貝目錄或文件,拷貝目錄時,會把目錄下的文件和子目錄都拷走
 //第二個參數,必須寫上拷過來之后的重命名
 //第一個參數,必須是一個存在的目錄或文件,第二個參數必須是一個不存在的目錄或文件
 //這程序表示,hello下的world拷貝到當前目錄,改名為world
5.移動/剪切目錄和文件
 [manager moveItemAtPath:@"/tmp/dir1" toPath:@"./dir1" error:&error];//需注意的地方,與拷貝類似
6.刪除目錄和文件
 [manager removeItemAtPath:@"./dir1" error:&error];//與移動類似,只是沒有了目標位置
7.判斷文件是否存在
 [manager fileExistsAtPath:@"./1.txt"];//返回值為BOOL,YES為存在
 NSFileHandle 文件句柄 文件的讀寫修改操作
 對文件內容進行操作,我們需要一個新的類NSData來幫助我們。NSData可以創建一個用來存儲數據的對象,進而我們對文件內容進行操作。
1.創建含有內容的文件
 NSString * str = @”Hello World”;
 NSData * data = [str dataUsingEncoding:NSUTF8StringEncoding];
 NSFileManager * manager = [NSFileManager defaultManager];
 [manager creatFileAtPath:@”./helloworld” contents:data attributes:nil];
 //如果第二個參數不是nil,就會在創建文件的同時,將data內容寫入文件
2.添加內容到已有的文件中
 NSFileHandle * handle = [NSFileHandle fileHandleForWritingAtPath:@”./helloworld”];  //只寫方式打開
 [handle writeData:data];  //寫入data數據
 想要寫入的數據,轉為data,再寫到文件中去。
 handle = [NSFileHandle fileHandleForReading AtPath:@”./helloworld”];//只讀方式打開
 handle = [NSFileHandle fileHandleForUpdating AtPath:@”./helloworld”];//以讀寫的方式打開
 這面的三種方式,均能寫入文件內容,但是我們會發現,再次執行后,都會覆蓋上次寫入的內容。
3.追加內容到文件
 與C語言文件管理不同的是,OC中沒有追加的打開方式。OC中解決問題的方式,其實也很簡單,就是將文件指針移到文件尾,然后再執行寫入data操作,這樣就能完成追加。
 [handle seekToEndOfFile];//指針定位在文件尾,打開后執行這一步,再寫入數據,可完成追加。
4.讀取文件內容
 讀取文件內容有很多種方式,每種方式根據不同需要,可起到很好的效果。
(1)不打開文件,直接讀取文件內容
  NSData * data = [NSData dataWithContentsOfFile:@”./1.txt”];
  NSData對象data將保存一個普通的C字符串,我們使用data輸出時,使用%s,輸出就能看到我們讀出的內容。使用%@輸出的話,我們得到的是一串ASCII碼值。
  NSLog(@”%@”,(char * )[data bytes]);//強轉一下再打印。
(2)打開文件,再讀取
  NSFileHandle * handle = [NSFileHandle FileHandleForReadindAtPath:@”./1.txt”];
  NSData * data = [handle readDataOfToEndOfFile];//讀到文件尾,data接收內容
  NSString * str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];//將data內容轉入字符串
  我們也可以實現文件的分段讀取,避免文件過大,內存不夠的情況
  [handle readDataOfLength:6];//讀取六個字符的內容
  配合循環可以讀取文件的全部內容。
  [handle seekToFileOfSet:0];//指針定位在文件頭
(2)直接讀取文件內容到字符串
  NSString * str = [NSString stringWithContentOfFile:@”./1.txt” encoding:NSUTF8StringEncoding error:&error];//以文件內容生成一字符串,讀取全部內容
  [str writeToFile:@”./2.txt” atomically:no encoding:NSUTF8String Encoding error:&error];//將字符串內容寫入到文件中
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

上杭县| 安龙县| 任丘市| 资兴市| 堆龙德庆县| 台湾省| 芦山县| 盐边县| 崇义县| 大化| 赫章县| 徐州市| 嘉荫县| 合作市| 崇义县| 鄂尔多斯市| 阿坝| 措勤县| 赣州市| 剑川县| 齐齐哈尔市| 福海县| 巍山| 隆化县| 彭水| 迁西县| 唐山市| 临猗县| 称多县| 玉屏| 北票市| 怀化市| 铁力市| 浦东新区| 五河县| 清原| 双流县| 宁德市| 雷波县| 通辽市| 渝北区|