文件操作

 

来源:http://my.oschina.net/outatu/blog/125589

1.文件的浅度遍历与深度遍历

 

01//NSFileManager * fm = [[NSFileManager alloc]init];//创建文件管理器
02//第一步创建一个文件管理器
03NSError * error= nil;
04//显示路径下的内容,作用类似于ls -a指令
05//返回值是把目录下的内容放到NSArray中
06//浅度遍历
07NSFileManager * fm = [NSFileManager defaultManager];
08NSArray * array = [fm contentsOfDirectoryAtPath:@"/Users/aaaaa/Desktop"
09                                          error:&error];
10//成功返回nil错误返回失败信息
11if(error)
12{
13   NSLog(@"Error=%@",error);
14   return -1;//代表函数返回(结束函数)
15   //exit(1);//结束当前进程
16}
17else
18{
19   NSLog(@"array=%@",array);
20}
21         
22//深度遍历
23//可以显示子目录的内容
24NSArray * array1 = [fm subpathsOfDirectoryAtPath:@"/Users/aaaaa/Desktop"
25                                           error:&error];
26if(error)
27{
28    NSLog(@"Error=%@",error);
29}
30else
31{
32    NSLog(@"array1=%@",array1);
33}

2.创建目录

 

01NSFileManager * fm = [NSFileManager defaultManager];
02NSError * error = nil;
03//当前路径指的是可执行程序的路径而不是代码的路径
04//创建目录  返回值:创建成功返回YES 失败返回NO
05BOOL ret = [fm createDirectoryAtPath:@"./hello2/world"  //创建目录的路径
06         withIntermediateDirectories:YES//路径不存在是否创建目录 YES代表创建(会把不存在的目录也创建) NO代表不创建
07                          attributes:nil    //文件属性(权限),通常写nil代表默认权限
08                               error:&error];
09if(ret)
10{
11   NSLog(@"success!");
12}
13else
14{
15    NSLog(@"error = %@",error);
16}

3.创建文件

 

1NSFileManager * fm = [NSFileManager defaultManager];
2//创建文件
3BOOL ret = [fm createFileAtPath:@"./1.txt" //路径以及文件名
4                       contents:nil //要创建的文件的内容 nil代表空文件 若文件以及存在会覆盖该文件
5                     attributes:nil];
6        [fm fileExistsAtPath:@"./1.txt"]//判断文件时候存在

4.拷贝文件/目录

 

1NSFileManager * fm = [NSFileManager defaultManager];
2NSError * error = nil;
3//拷贝文件/目录
4//第二个参数必须要写全文件或者目录名字
5BOOL ret = [fm copyItemAtPath:@"/Users/aaaaa/Desktop/string.c"//要复制的文件的路径
6                       toPath:@"./1.txt" //目的文件(文件名不要加空格)若以及存在会返回error
7                        error:&error];

5.移动(重命名)文件/目录

 

1//重命名(移动)文件或目录
2//重命名:就是修改文件路径
3//如果文件/目录存在 移动失败
4ret = [fm moveItemAtPath:@"/Users/aaaaa/Desktop/"
5                  toPath:@"./1/1" //参数要写全称
6                   error:&error];

6.删除文件/目录

 

1//删除文件/目录
2//谨慎使用(会直接删除 不会丢到废纸篓中)
3ret = [fm removeItemAtPath:@"./1.txt"
4                     error:&error];

7.NSData与字符串

 

1NSString * str = @"hello world";
2//将OC字符串转换成NSData类型
3//NSData 文件缓冲区
4NSData * data = [str dataUsingEncoding:NSUTF8StringEncoding];
5         
6//将NSData类型转换成NSString类型
7NSString * str2 = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];

8.文件读写操作

 

01//文件读写操作
02//第一步打开文件
03//FILE * fp = fopen("./1.txt","w");文件指针
04//文件句柄
05//以只读方式打开
06NSFileHandle * fh = [NSFileHandle fileHandleForReadingAtPath:@"/Users/aaaaa/Desktop/string.c"];
07         
08//以只写方式打开
09fh = [NSFileHandle fileHandleForWritingAtPath:@"/Users/aaaaa/Desktop/string.c"];
10//以读写方式打开
11fh = [NSFileHandle fileHandleForUpdatingAtPath:@"/Users/aaaaa/Desktop/string.c"];
12 
13//OC的打开函数都会把偏移量定位在未见首
14//若想在文件尾进行操作,可将文件偏移量定位到文件尾
15[fh seekToEndOfFile];//定位到文件尾
16     
17NSData * data1 = [fh readDataOfLength:10];//读取指定个数字节
18NSData * data2 = [fh readDataToEndOfFile];//从当前偏移量读到文件尾
19[fh seekToFileOffset:10];//把文件偏移量定位到10字节

9.向文件中写数据

 

1NSFileHandle * fh2 = [NSFileHandle fileHandleForUpdatingAtPath:@"./1.txt"];
2NSString * str = @"hello world";
3NSData * data = [str dataUsingEncoding:NSUTF8StringEncoding];
4//写数据必须要转化为NSData
5[fh2 writeData:data];

10.获取文件长度

1//通过文件管理器获取文件属性然后通过字典获取文件长度
2NSFileManager * fm = [NSFileManager defaultManager];
3NSDictionary * dict = [fm attributesOfItemAtPath:@"/Users/aaaaa/Desktop/string.c"                                              error:&error];
4//方法一:
5NSLog(@"size = %lld",[dict fileSize]);
6//方法二:
7NSLog(@"%@",[dict objectForKey:NSFileSize]);
内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值