国产探花免费观看_亚洲丰满少妇自慰呻吟_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://m.survivalescaperooms.com/jerehedu/ 
版權聲明:本文版權歸煙臺杰瑞教育科技有限公司和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
技術咨詢:JRedu技術交流
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 民县| 高要市| 石首市| 弥渡县| 郎溪县| 波密县| 汶上县| 盖州市| 桃园市| 琼中| 南丹县| 塔河县| 吴江市| 江源县| 威信县| 哈尔滨市| 兰西县| 搜索| 永靖县| 通海县| 襄城县| 天门市| 股票| 汝南县| 邢台县| 修水县| 开阳县| 克拉玛依市| 连南| 景洪市| 历史| 华阴市| 嘉定区| 哈尔滨市| 合水县| 高青县| 平远县| 黄梅县| 河池市| 丰县| 奎屯市|