Objective-C ---NSFileManager NSFileHandle (梳理整理)
2016-05-26 19:10
465 查看
NSFileManager : 判断文件/文件夹是否存在, 创建文件/文件夹, (拷贝,移动,删除)文件/文件夹......
NSFileHandle: 文件内容读取, 写入.....
诀窍:NSFileManager 对文件的外在 进行操作,对于文件的内容不感兴趣
NSFileHandle:刚好相反,只对文件的内容感兴趣
1.NSFileManager
a.defaultManager(单例)
b目录遍历
1)浅层遍历
contentsOfDirectoryAtPath消息 作用:获取指定目录中的所有内容
2)深层遍历
subpathsOfDirectoryAtPath消息 作用:遍历出指定目录中所有文件,包括子目录
c判断文件是否存在 fileExistsAtPath
d创建文件/文件夹 createFileAtPath/createDirectoryAtPath
e其他,拷贝 移动 删除
copyItemAtPath:toPath
moveItemAtPath:toPath
removeItemAtPath
应用举例
a文件是否存在,不存在创建
if( ![[NSFileManager defaultManager] fileExistsAtPath:XXXPath"] ){
[[NSFileManager defaultManager] createFileAtPath:<#(NSString *写文件路径)#> contents:<#(NSData * 写nil )#> attributes:<#(NSDictionary *读写权限 写nil)#>];
}
2.NSFilehandle
1.创建方式(以什么样的权限打开文件只读/只写/读写)
1)只读方式打开文件 fileHandleForReadingAtPath
2)只写方式打开文件 fileHandleForWritingAtPath
3)读写方式打开文件 fileHandleForUpdatingAtPath (一般也没必要给自己设卡,用这个)
NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:XXXPath]
2.将数据写入文件
writeData<*****>
3.读取
readDataToEndOfFile 作用:从文件中读取所有数据 光标移至最后
readDataOfLength 作用:从文件中读取指定指定字节的数据
用这个读取比较麻烦的地方就是光标的问题,假如非要用就特别注意读取前吧光标的位置移至需要的位置
seekToFileOffset 作用:将文件读写指针设置到文件的指定位置
seekToEndOfFile 作用:将文件读写位置设置到文件末尾
4.关闭文件 closeFile
应用举例
a创建文件 并写入内容
+(void)createFile:(NSString*)path WithData:(NSData*)imgData{
// createFile
[[NSFileManager defaultManager] createFileAtPath:path contents:nil attributes:nil];
// write
NSFileHandle*dataHandle = [NSFileHandle fileHandleForUpdatingAtPath:path] ;
[dataHandle writeData:imgData];
// close
[dataHandle closeFile];
}
NSFileHandle: 文件内容读取, 写入.....
诀窍:NSFileManager 对文件的外在 进行操作,对于文件的内容不感兴趣
NSFileHandle:刚好相反,只对文件的内容感兴趣
1.NSFileManager
a.defaultManager(单例)
b目录遍历
1)浅层遍历
contentsOfDirectoryAtPath消息 作用:获取指定目录中的所有内容
2)深层遍历
subpathsOfDirectoryAtPath消息 作用:遍历出指定目录中所有文件,包括子目录
c判断文件是否存在 fileExistsAtPath
d创建文件/文件夹 createFileAtPath/createDirectoryAtPath
e其他,拷贝 移动 删除
copyItemAtPath:toPath
moveItemAtPath:toPath
removeItemAtPath
应用举例
a文件是否存在,不存在创建
if( ![[NSFileManager defaultManager] fileExistsAtPath:XXXPath"] ){
[[NSFileManager defaultManager] createFileAtPath:<#(NSString *写文件路径)#> contents:<#(NSData * 写nil )#> attributes:<#(NSDictionary *读写权限 写nil)#>];
}
2.NSFilehandle
1.创建方式(以什么样的权限打开文件只读/只写/读写)
1)只读方式打开文件 fileHandleForReadingAtPath
2)只写方式打开文件 fileHandleForWritingAtPath
3)读写方式打开文件 fileHandleForUpdatingAtPath (一般也没必要给自己设卡,用这个)
NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:XXXPath]
2.将数据写入文件
writeData<*****>
3.读取
readDataToEndOfFile 作用:从文件中读取所有数据 光标移至最后
readDataOfLength 作用:从文件中读取指定指定字节的数据
用这个读取比较麻烦的地方就是光标的问题,假如非要用就特别注意读取前吧光标的位置移至需要的位置
seekToFileOffset 作用:将文件读写指针设置到文件的指定位置
seekToEndOfFile 作用:将文件读写位置设置到文件末尾
4.关闭文件 closeFile
应用举例
a创建文件 并写入内容
+(void)createFile:(NSString*)path WithData:(NSData*)imgData{
// createFile
[[NSFileManager defaultManager] createFileAtPath:path contents:nil attributes:nil];
// write
NSFileHandle*dataHandle = [NSFileHandle fileHandleForUpdatingAtPath:path] ;
[dataHandle writeData:imgData];
// close
[dataHandle closeFile];
}
相关文章推荐
- Json转换成bean-Jackson ObjectMapper
- iOS开发笔记 之 第1章 Objective-C语法学习
- Objective-C动画学习之自定义过渡动画的实现和使用
- Objective-C Runtime
- OC(Objective-C)学习笔记(二)--终端运行多OC程序
- Objective-C-UI控件学习之UIScreenEdgePanGestureRecognizer
- object references an unsaved transient instance - save the transient instance before flushing
- Objective-C-UI控件学习之UIView中坐标转换的方法
- OC(Objective-C)学习笔记(一)--import的作用
- jersey 示例获取List<Object>(二)
- [论文阅读]R-FCN: Object Detection via Region-based Fully Convolutional Networks
- Object-C之动态类型(isKindOfClass, isMemberOfClass,id)等
- setObject()用法
- (String)\toString()\String.valueOf(Object) java中的区别
- [Android]JSON数据传输出错——JSONObject将对象数据(Map,List)当成字符串处理
- TypeError: 'str' object is not callable
- Objective-C ---XML解析 (梳理整理)
- Objective-C ---JSON 解析 和 KVC
- Objective-C 记录
- Java Object