国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

IOS之NSFileManager和NSFileHandle

2019-11-14 18:10:49
字體:
來源:轉載
供稿:網友

  在現階手機app的臨時緩存文件漸漸增多,在app開發中對于移動設備文件的操作越來越多,我們IOS中對于文件的操作主要涉及兩個類NSFileManager 和NSFileHandle,下面我們就看看如何使用這兩個類:

1、文件創建

//初始化一個NSFileManager類defaultManager方法為單例模式,通過單例模式進行初始化        NSFileManager  * fileManager =[NSFileManager defaultManager];                //拼接路徑        NSString * path=NSHomeDirectory();        path=[path stringByAppendingPathComponent:@"deskTop/date.txt"];                //創建文件        BOOL flag=[fileManager createFileAtPath:path contents:nil attributes:nil];        if(flag){            NSLog(@"文件創建成功");        }else{            NSLog(@"文件創建失敗");        }

2、創建目錄

NSFileManager  * fileManager =[NSFileManager defaultManager];        NSString * path=NSHomeDirectory();        path=[path stringByAppendingPathComponent:@"deskTop/PRo/cpp"];        BOOL flag=[fileManager createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil];                if(flag){            NSLog(@"創建成功");        }else{            NSLog(@"創建失敗");        }

3、刪除文件和目錄

 NSFileManager  * fileManager =[NSFileManager defaultManager];        NSString * rootPath=NSHomeDirectory();        NSString * dirPath=[rootPath stringByAppendingPathComponent:@"deskTop/newFolder"];                NSArray * array=[fileManager contentsOfDirectoryAtPath:dirPath error:nil];        for(NSString * str in array){                        NSString * newPath=[dirPath stringByAppendingPathComponent:str];            BOOL flag=[fileManager removeItemAtPath:newPath error:nil];            if(flag){                NSLog(@"刪除成功");            }else{                NSLog(@"刪除失敗");            }                }

對于文件的操作有很多方法我們為提及到,我們可以看下官方的API里面有很多我們可能會用到的方法

 //將一個文件復制到另一個文件 [fileManager copyItemAtPath:path1 toPath:path2 error:nil];          //將一個文件移動到另一個文件 [fileManager moveItemAtPath:path1 toPath:path2 error:nil];  //獲取文件里面的內容 NSData * readData=[fileManager contentsAtPath:path]

  案例:我們這里可以做一個例子如何計算一個文件里面的所有行數,思路:我們首先需要讀取文件里面的所有信息內容,統計行數我們只需要統計文件里的換行符的個數即可,實例如下所示:

NSFileManager  * fileManager =[NSFileManager defaultManager];        NSString * rootPath=NSHomeDirectory();        NSString * dirPath=[rootPath stringByAppendingPathComponent:@"deskTop/newFolder/main.m"];                NSData * data=[fileManager contentsAtPath:dirPath];        NSString * str=[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];                int count=(int)[str componentsSeparatedByString:@"/n"].count;                NSLog(@"當前的總行數為%d",count);

4、文件寫入

在文件的讀寫操作過程中我們用的最多的是NSFileHandler,我們通過該類進行文件操作

   //初始化一個用于寫入的文件句柄        NSFileHandle * fileHandle=[NSFileHandle fileHandleForWritingAtPath:filePath];          NSString * str=@"pppppppppppp";               //將文件光標移動到文件的最后位置        [fileHandle seekToEndOfFile];        NSData * data=[str dataUsingEncoding:NSUTF8StringEncoding];                //寫入數據        [fileHandle writeData:data];                //用完之后需要關掉        [fileHandle closeFile];

5、文件的讀取

  NSFileHandle * fileHandle=[NSFileHandle fileHandleForReadingAtPath:filePath];        //讀取到文件的末尾        NSData * data= [fileHandle readDataToEndOfFile];        //定位光標的位置        [fileHandle seekToFileOffset:2];        //查詢該文件可用數據的個數        [fileHandle availableData];        //讀取指定長度的文件        NSData * data=[fileHandle readDataOfLength:3];       NSString * str=[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];        NSLog(@"%@",str);//關閉句柄       [fileHandle closeFile];

 

作者:杰瑞教育
出處:http://www.survivalescaperooms.com/jerehedu/ 
版權聲明:本文版權歸煙臺杰瑞教育科技有限公司和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
技術咨詢:JRedu技術交流
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 榆社县| 望都县| 绥芬河市| 邵阳县| 莱州市| 台湾省| 龙海市| 昌江| 玉屏| 建德市| 板桥市| 盘山县| 阿瓦提县| 扶绥县| 黑山县| 汕头市| 山阴县| 扬州市| 西林县| 陕西省| 德江县| 安乡县| 南丰县| 嵊州市| 通州市| 荃湾区| 盐城市| 峨眉山市| 错那县| 衡水市| 增城市| 紫阳县| 和林格尔县| 绿春县| 兰西县| 德清县| 恭城| 柘荣县| 施甸县| 肇源县| 昭苏县|