OC文件操作2
2013-10-21 21:42
363 查看
1、对文件本身的操作 NSManager
2、对文件内容的操作 NSHandle 文件句柄
内存:内部存储器;硬盘:外部存储设备。 从硬盘到内存(从文件到内存)叫做读,从内存到文件(硬盘)叫做写。
如果文件内容不是特别的多,可以用下面的方法直接读取全部内容
除了上面读的方法,还有写的方法。
类似C语言一样,直接将文件清空,然后将内容写入到文件里面。首先需要将文件字节截短至0
修改文件,将新的内容添加至已有内容的末尾。
3、归档
归档:把平时使用的变量或者对象以一定的格式写入文件中进行存储,等到需要的时候直接读取出来就能还原成原对象的格式。
如果处理的数据较大的时候,需要一个辅助的类似NSKededArchieve。
归档后的内容看上去都是乱码,可以用反归档对象NSKeyedUnarchiver获取plist文件里面的内容
2、对文件内容的操作 NSHandle 文件句柄
NSFileHandle * fh = [NSFileHandle fileHandleForReadingAtPath:@""]; //以只读方式打开文件生成文件句柄
内存:内部存储器;硬盘:外部存储设备。 从硬盘到内存(从文件到内存)叫做读,从内存到文件(硬盘)叫做写。
//读取文件内容的两种方式 NSData * data = [fh readDataOfLength:3]; //继续上面3个字节后,继续读取5个字节 data = [fh readDataOfLength:5];
如果文件内容不是特别的多,可以用下面的方法直接读取全部内容
//如果文件内容不是特别的多,可以用下面的方法直接读取全部内容 data = [fh readDataToEndOfFile]; NSString * str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
除了上面读的方法,还有写的方法。
NSFileHandle * fh = [NSFileHandle fileHandleForWritingAtPath:@""]; //以只写方式打开文件生成句柄 [fh writeData:[@"hello" dataUsingEncoding:NSUTF8StringEncoding]];//直接覆盖掉前面相应数量的字符
类似C语言一样,直接将文件清空,然后将内容写入到文件里面。首先需要将文件字节截短至0
[fh truncateFileAtOffset:0]; //将文件内容截断至0字节 [fh writeData:[@"hello" dataUsingEncoding:NSUTF8StringEncoding]];
修改文件,将新的内容添加至已有内容的末尾。
[fh seekToEndOfFile]; //将读写指针设在文件的尾端 [fh writeData:[@"XXX" dataUsingEncoding:NSUTF8StringEncoding]];
3、归档
归档:把平时使用的变量或者对象以一定的格式写入文件中进行存储,等到需要的时候直接读取出来就能还原成原对象的格式。
#define PATH @"/Users/liyang/Desktop/Test/file.plist" NSDictionary * dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"one",@"1",@"two",@"2",@"three",@"3",nil]; [dict writeToFile:PATH atomically:YES]; NSDictionary * dict = [[NSDictionary alloc] initWithContentsOfFile:PATH]; [NSLog @"%@",dict]; NSArray * array = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",nil]; [array writeToFile:PATH atomically:YES];
如果处理的数据较大的时候,需要一个辅助的类似NSKededArchieve。
NSDictionary * dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"one",@"1",@"two",@"2",@"three",@"3",nil]; NSArray * array = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",nil]; NSMutableData * data = [[NSMutableData alloc] init]; NSKeyedArchiver * archiver = [[NSKeyedArchiver alloc] initForWritingWithMudatableData:data]; [archiver encodeObject:array forKey:@"array"]; [archiver encodeObject:dict forKey:@"dict"]; [archiver finishEncoding]; [data writeToFile:PATH atomically:YES];
归档后的内容看上去都是乱码,可以用反归档对象NSKeyedUnarchiver获取plist文件里面的内容
//获取plist的内容 NSData * data = [[NSData alloc] initWithContentsOfFile:PATH]; NSKeyedUnarchiver * unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; NSArray * array = [unarchiver decodeObjectForKey:@"array"]; NSLog(@"%@",array);
相关文章推荐
- oc 沙盒目录定位与文件操作 (1)
- (有码)OC中的文件操作
- OC : NSFileHandle (文件内容操作)
- Swift调用OC之文件操作-NSFileHandle
- OC NSFileManager(文件路径操作)
- OC学习笔记16--OC中文件操作-NSFileManager的使用及文件操作中常用的一些字符串方法
- Snail—OC学习之文件操作(非读写)
- OC学习之文件目录操作
- oc中的文件和目录相关操作
- OC基础学习——文件管理和文件操作
- oc 文件操作,查看目录下所有文件包括子文件夹内包含的所有文件,循环遍历递归
- oc文件操作及沙盒机制
- OC-文件和计时器操作实例
- oc学习之旅:内存管理,文件操作流程
- oc中对文件的操作(加载已有文件数据,存取文件)
- oc 文件管理NSFileManager,文件读写NSFileHandle ,设计一个文件管理类将一个文件复制到另一个文件,由于文件过大要求每次复制100长度,通过NSFileHandle 来操作,并
- 【OC】文件操作相关
- Snail—OC学习之文件操作(读写)
- OC语言笔记(六):OC单例、NSData和文件操作
- oc学习之旅:文件操作