文件管理器和文件连接器
2016-05-14 20:17
106 查看
文件路径path,error:默认写nil
文件管理器 NSFlieManager :
主要是对 文件 进行 创建 删除 改名 等以及文件信息的获取 的操作
1、创建Manager
2、创建一个文件并写入数据:
3、从一个文件中读取数据
4、文件移动
5、文件的复制
6、比较两个文件的内容是否一样
7、文件是否存在
-(BOOL)fileExistsAtPath:path
8、移除文件
-(BOOL)removeItemAtPath:path error:nil
9、创建文件夹
-(BOOL)createDirectoryAtPath: path withIntermediateDirectory
文件连接器 NSFileHandle : 只能对内容修改,不能对文件
主要是对 文件内容 进行读取和写入的操作
三个类的方法,创建对用操作的handle:
1、读
+ (nullable instancetype)fileHandleForReadingAtPath:(NSString *)path;
还可以:
+ (nullable instancetype)fileHandleForReadingFromURL:(NSURL )url error:(NSError *)error
2、写
+ (nullable instancetype)fileHandleForWritingAtPath:(NSString *)path;
还可以:
+ (nullable instancetype)fileHandleForWritingToURL:(NSURL )url error:(NSError *)error
3、更新
+ (nullable instancetype)fileHandleForUpdatingAtPath:(NSString *)path;
还可以:
++ (nullable instancetype)fileHandleForUpdatingURL:(NSURL )url error:(NSError *)error
具体的一些:
1、返回可用的数据
2、从当前节点读到文件尾
-(NSData*)readDataToEndOfFlie;
3、从当前节点读到指定长度
-(NSData*)readDataOfLength:(NSUInteger)length;
4、写入数据
–writeData:(NSData*)data
5、获取当前文件的偏移量
-offsetInFile
6、跳到指定的文件偏移量
-seekToFileOffset: offset
7、跳到文件尾
seekToEndOfFile
8、将文件的长度设为offset字节
-truncateFileAtOffset:offset
具体代码:
文件管理器 NSFlieManager :
主要是对 文件 进行 创建 删除 改名 等以及文件信息的获取 的操作
1、创建Manager
NSFileManager *fileManager = 【NSFileManager defaultManager】
2、创建一个文件并写入数据:
-(BOOL)createFileAtPath:(NSString*)path contents:(NSData*)data attributes:(NSDictionary*)dic;
3、从一个文件中读取数据
-(NSData*)contentsAtPath:(NSString*)path;
4、文件移动
-(BOOL)moveItemAtPath:(NSString*)srcPath toPath :(NSString*)dstPath error:(NSError*)error
5、文件的复制
-(Bool)copyItemAtPath:(NSString*)srcPath toPath:(NSString*)dstPath error:nil
6、比较两个文件的内容是否一样
-(BOOL)contentsEqualAtPath: path1 andPath:path2
7、文件是否存在
-(BOOL)fileExistsAtPath:path
8、移除文件
-(BOOL)removeItemAtPath:path error:nil
9、创建文件夹
-(BOOL)createDirectoryAtPath: path withIntermediateDirectory
文件连接器 NSFileHandle : 只能对内容修改,不能对文件
主要是对 文件内容 进行读取和写入的操作
三个类的方法,创建对用操作的handle:
1、读
+ (nullable instancetype)fileHandleForReadingAtPath:(NSString *)path;
还可以:
+ (nullable instancetype)fileHandleForReadingFromURL:(NSURL )url error:(NSError *)error
2、写
+ (nullable instancetype)fileHandleForWritingAtPath:(NSString *)path;
还可以:
+ (nullable instancetype)fileHandleForWritingToURL:(NSURL )url error:(NSError *)error
3、更新
+ (nullable instancetype)fileHandleForUpdatingAtPath:(NSString *)path;
还可以:
++ (nullable instancetype)fileHandleForUpdatingURL:(NSURL )url error:(NSError *)error
具体的一些:
1、返回可用的数据
-(NSData*)availableData;
2、从当前节点读到文件尾
-(NSData*)readDataToEndOfFlie;
3、从当前节点读到指定长度
-(NSData*)readDataOfLength:(NSUInteger)length;
4、写入数据
–writeData:(NSData*)data
5、获取当前文件的偏移量
-offsetInFile
6、跳到指定的文件偏移量
-seekToFileOffset: offset
7、跳到文件尾
seekToEndOfFile
8、将文件的长度设为offset字节
-truncateFileAtOffset:offset
具体代码:
//修改内容 NSFileHandle *filehandle=[NSFileHandle fileHandleForUpdatingAtPath:filePath]; //可以在一半的长度插入,但是后面的内容会被覆盖 //NSInteger len=[[filehandle availableData]length]; //[filehandle seekToFileOffset:len/2]; [filehandle seekToEndOfFile]; [filehandle writeData:[@"123" dataUsingEncoding:NSUTF8StringEncoding]]; [filehandle closeFile]; //定位数据 NSFileHandle *readFileHandle=[NSFileHandle fileHandleForReadingAtPath:filePath]; NSUInteger length=[[readFileHandle availableData] length]; [readFileHandle seekToFileOffset:length/2]; NSData *readData = [readFileHandle readDataToEndOfFile]; NSString *readStr=[[NSString alloc]initWithData:readData encoding:NSUTF8StringEncoding]; NSLog(@"%@",readStr); [readFileHandle readDataOfLength:length]; //复制数据 //write 直接覆盖原来的 NSString *filePath2=[documentPath stringByAppendingPathComponent:@"file2.txt"]; [fileManager createFileAtPath:filePath2 contents:[@"hello" dataUsingEncoding:NSUTF8StringEncoding] attributes:nil]; NSFileHandle *writeFileHandle=[NSFileHandle fileHandleForWritingAtPath:filePath2]; [writeFileHandle writeData: readData]; [writeFileHandle closeFile];
相关文章推荐
- I/O流,File类
- java核心数据结构(二)——Map类族
- TSM备份相关概述
- equals与 "==" 的区别
- Struts2工作原理
- 115. Distinct Subsequences dp算法
- C# 时间日期的获取与比较
- 第11周学习进度
- 1088. Rational Arithmetic (20)——PAT (Advanced Level) Practise
- poj 3903 LIS
- 二十岁出头,你一无所有,但你却拥有一切
- 理解有参构造器和无参构造器的作用
- java nio
- IP聚合
- 软件工程课程前三次作业总结
- 获取fragment中对应的控件的写法
- mybatis分页插件
- compareTo返回值为-1 、 1 、 0 的排序问题
- C++builder Property属性
- HTML 5实现图像走马灯效果