iOS 简单文件操作
2016-07-22 16:49
435 查看
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //------文件名处理----------常用NSString提供操作文件路径名方法 // 返回路径的组成部分 NSString *path = @"/Users/yubo/text.txt"; NSArray *array = [path pathComponents]; NSLog(@"array--%@",array); // 返回最后组成的部分---文件的名称 NSString *str = [path lastPathComponent]; NSLog(@"str-->%@",str); // 追加 path = [path stringByAppendingPathComponent:@"maizi"]; NSLog(@"%@",path); //-------文件数据源处理 NSData, 数据进行编码和解码处理----------- NSString *msg = @"maizi_today"; NSData *data = [msg dataUsingEncoding:NSUTF8StringEncoding]; msg = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"msg-->%@",msg); //--------- 开始文件真正的操作方法。 // Documents:存放长期使用的文件(一般存放目录) // Library:系统存放文件 // tmp:临时文件,app重启时,该目录下得文件清空 NSArray *documentArrary = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, true); NSLog(@"%@",documentArrary); NSArray *libArray = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, true); NSLog(@"%@",libArray); // 文件操作类处理---------------------NSFileManager // 创建文件 NSString *homePath = NSHomeDirectory(); NSLog(@"%@",homePath); homePath = [homePath stringByAppendingPathComponent:@"Document/file_maizi.txt"]; NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *fileContent = @"码农的自我修养"; NSData *fileData = [fileContent dataUsingEncoding:NSUTF8StringEncoding]; bool flag = [fileManager createFileAtPath:homePath contents:fileData attributes:nil]; if (flag) { NSLog(@"文件创建成功"); }else{ NSLog(@"文件创建失败"); } // 创建文件 NSString *filePaths = NSHomeDirectory(); filePaths = [filePaths stringByAppendingPathComponent:@"maiziTest/maiziFile"]; NSError *error; NSFileManager *manager = [NSFileManager defaultManager]; bool fileFlag = [manager createDirectoryAtPath:filePaths withIntermediateDirectories:true attributes:nil error:&error]; if (fileFlag) { NSLog(@"文件创建成功"); } // 读取文件 NSData *datas = [manager contentsAtPath:homePath]; NSString *dataMsg = [[NSString alloc]initWithData:datas encoding:NSUTF8StringEncoding]; NSLog(@"文件内容--->%@",dataMsg); // 移动文件 bool moveFlag = [manager moveItemAtPath:homePath toPath:filePaths error:&error]; if (moveFlag) { NSLog(@"文件移动成功"); }else{ NSLog(@"%@",error.description); } // 复制文件 bool copyFlag = [manager copyItemAtPath:homePath toPath:filePaths error:&error]; if (copyFlag) { NSLog(@"复制文件成功"); }else{ NSLog(@"error is %@",error.description); } // 删除文件 // bool exist = [manager fileExistsAtPath:homePath]; // if (exist) { // // bool removeFlag = [manager removeItemAtPath:homePath error:&error]; // if (removeFlag) { // NSLog(@"删除成功"); // } // } // 查看文件属性 NSDictionary *dic = [manager attributesOfItemAtPath:filePaths error:nil]; NSLog(@"%@",dic); //-------------- NSFileHandle 文件的读写操作 // 字符串直接写入文件 NSString *strA = @"------我是麦子"; bool writerSuccess = [strA writeToFile:homePath atomically:NO encoding:NSUTF8StringEncoding error:nil]; if (writerSuccess) { NSLog(@"文件写入成功"); } NSString *contentA = [NSString stringWithContentsOfFile:homePath encoding:NSUTF8StringEncoding error:nil]; NSLog(@"%@",contentA); // NSdata 直接读写 NSData *dataA = [NSData dataWithContentsOfFile:homePath]; NSString *strB = [[NSString alloc]initWithData:dataA encoding:NSUTF8StringEncoding]; NSLog(@"---->%@",strB); NSString *strC = @"我是Data数据,你是哪一位"; NSData *dataC = [strC dataUsingEncoding:NSUTF8StringEncoding]; bool dataSuccess = [dataC writeToFile:homePath atomically:NO]; dataA = [NSData dataWithContentsOfFile:homePath]; NSString *newWord = [[NSString alloc]initWithData:dataA encoding:NSUTF8StringEncoding]; NSLog(@"-data直接获取数据--->%@",newWord); // NSArray 直接写入文件----------这种直接写入的,会默认给你创建文件,但是不会给你创建文件夹。 NSArray *dataArray = @[@"android",@"ios"]; NSString *arrayFile = NSHomeDirectory(); arrayFile = [arrayFile stringByAppendingPathComponent:@"Documents/array.plist"]; bool success2 = [dataArray writeToFile:arrayFile atomically:true]; if (success2) { NSLog(@"写入成功"); }else{ NSLog(@"写入失败"); } // dictory 字典写入文件 NSDictionary *fileDic = @{ @"name" : @"maizi_today", @"age" : @"27" }; NSString *dicFile = NSHomeDirectory(); dicFile = [dicFile stringByAppendingPathComponent:@"Document/dicFile.plist"]; bool dicSuccess = [fileDic writeToFile:dicFile atomically:true]; if (dicSuccess) { NSLog(@"字典保存成功"); }else{ NSLog(@"字典保存失败"); } // 文件进行处理,内容文件追加处理。 NSString *strD = @"无线互联"; NSString *fileD = NSHomeDirectory(); fileD = [fileD stringByAppendingPathComponent:@"hahaha.txt"]; bool successD = [strD writeToFile:fileD atomically:true encoding:NSUTF8StringEncoding error:nil]; if (successD) { NSLog(@"写入成功"); } // 追加--写 NSFileHandle *handle = [NSFileHandle fileHandleForWritingAtPath:fileD]; [handle seekToEndOfFile]; NSString *msgD = @".......我是新加入的字符串......."; NSData *dataD = [msgD dataUsingEncoding:NSUTF8StringEncoding]; [handle writeData:dataD]; // 记得关闭文件。 [handle closeFile]; NSString *newMsg = [NSString stringWithContentsOfFile:fileD encoding:NSUTF8StringEncoding error:nil]; NSLog(@"newMsg--->%@",newMsg); } return 0; }
相关文章推荐
- 黑马程序员-ios学习笔记 Foundation 中的 NSFileManager
- 文件类的常用方法
- 文件管理习题练习二
- IOS学习笔记:NSFileManager常用方法
- Object-C学习(八):文件管理【一】
- NSFileManager
- 黑马程序员 OC语言 - 8 NSFileManager、NSSet、NSMutableSet
- NSFileManager的简介和使用
- iOS学习之iOS沙盒(sandbox)机制和文件操作之NSFileManager(三)
- NSFileManager和NSFileHandle
- iOS 计算文件夹中包含所有文件的大小
- 文件操作(NSFileManager)
- 常见的NSFileManager方法
- iOS开发-文件管理之多的是你不知道的事(一)
- iOS开发-文件管理之多的是你不知道的事(二)
- 【ios 汇总 - 操作文件常用方法】 (NSFileManager NSFileHandle NSData)
- OC 文件部分 (NSFileManager NSData NSFileHandle 的应用)
- 移动bundle中的文件时出现错误:Cocoa error 513
- 简析——NSFileManager与NSFileHandle
- NSFileManager 基本操作