在现阶手机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:];
//查询该文件可用数据的个数
[fileHandle availableData];
//读取指定长度的文件
NSData * data=[fileHandle readDataOfLength:];
NSString * str=[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",str);
//关闭句柄
[fileHandle closeFile];
作者:杰瑞教育
出处:http://www.cnblogs.com/jerehedu/ 
版权声明:本文版权归烟台杰瑞教育科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

技术咨询:
 

IOS之NSFileManager 和NSFileHandle的更多相关文章

  1. ios NSFileManager和NSFileHandle(附:获取文件大小 )

    转自 http://blog.csdn.net/zhibudefeng/article/details/7795946 //file 文件操作 NSFileManager  常见的NSFileMana ...

  2. IOS文件系统及其相关操作(NSFileManager,NSFileHandle)

    How do you get the paths to these special sandbox directories? NSArray *NSSearchPathForDirectoriesIn ...

  3. iOS - OC NSFileManager 文件管理

    前言 @interface NSFileManager : NSObject @interface NSFileHandle : NSObject <NSSecureCoding> NSF ...

  4. OC语言--NSFileManager&amp; NSFileHandle

    1.关于文件的介绍 ->什么是文件: 文件概念, 广义文件. 狭义文件(磁盘文件). 文件常见的使用操作(可用命令行演示文件操作的使用场景). ->什么是路径: 简单来说就是,在系统中,要 ...

  5. 高级UIKit-03(NSFileManager、NSFileHandle)

    fileManager文件管理器 [day04_1_FileManager_Search] :查找文件 fileManager有一个方法可以判断文件是否是文件夹, fileExistsAtPath:i ...

  6. NSFileManager和NSFileHandle(附:获取文件大小 )

    本文转载至:http://www.cnblogs.com/pengyingh/articles/2350345.html 天牛 感谢原创作者的硕果 //file 文件操作 NSFileManager  ...

  7. iOS中NSFileManager文件常用操作整合

    //获取Document路径 + (NSString *)getDocumentPath { NSArray *filePaths = NSSearchPathForDirectoriesInDoma ...

  8. NSFileManager和NSFileHandle使用

    一.NSFileManager: 1.1.获取NSFileManager NSFileManager *manager = [NSFileManager defaultManager];     NS ...

  9. iOS NSFileManager对沙盒文件及目录添加删除操作

    iOS 使用 NSFileManager对沙盒里面的文件和目录,增加,修改,删除操作: - (void)viewDidLoad { [super viewDidLoad]; self.title = ...

随机推荐

  1. 第2天:Django路由与视图

    在应用中创建视图定义路由 配置文件说明 静态文件使用 Django解析路由的流程 路由顺序 路由命名与reverse反推 在应用中创建视图定义路由 前面我们已经创建了子应用users,但是这个user ...

  2. Alter GDG limit

    //JOBCARD... //*-------------------------------------------------------------------* //* Alter GDG l ...

  3. [BZOJ5317][JSOI2018]部落战争(闵可夫斯基和)

    对于点集$A$,$B$,闵可夫斯基和$C=\{(x1+x2,y1+y2)|(x1,x2)\in A,(y1,y2)\in B\}$.由此可知,对于两个凸包$A$,$B$的闵可夫斯基和$C$满足,$C$ ...

  4. 利用Pastezort渗透win7

    下载Pastezort git clone https://github.com/ZettaHack/PasteZort.git 给Pastezort文件夹提升权限 /root/PasteZort/ ...

  5. 20172319 2018.04.11 《Java程序设计教程》第7周课堂测验(补写博客)

    20172319 2018.04.11 <Java程序设计教程>第7周课堂测验 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...

  6. PYQT窗口托盘目录

    #UI.py,通过UI设计师制作后直接转换为UI.py脚本 # -*- coding: utf-8 -*- from PyQt4 import QtCore, QtGui try:    _fromU ...

  7. python开发_webbrowser_浏览器控制模块

    ''' python的webbrowser模块支持对浏览器进行一些操作 主要有以下三个方法: webbrowser.open(url, new=0, autoraise=True) webbrowse ...

  8. Git_添加远程库

    现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举 ...

  9. 事件冒泡 比bubble

    冒泡的概念就是 当子元素触发事件的时候 相应的祖宗十八代素也会触发相同的事件(前提父元素也添加了一样的事件)eg:儿子 有一个onclick 祖宗十八代 也有onclick 当点击儿子的时候 祖宗十八 ...

  10. JDK居然还有Server和Client模式

    JDK这货居然还分Server和Client版本,但经过观察,据说从1.7+版本开始这两者运行的区别已经逐步减少了.所以接下来的分析没啥意义. 参考: http://www.oracle.com/te ...