iOS 文件及字符串相关操作汇总 - 持续更新中......

iOS 文件及字符串相关操作汇总 - 持续更新中......

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)

本文遵循“署名-非商业用途-保持一致”创作公用协议

转载请保留此句:太阳火神的美丽人生
-  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。

1、获取应用包中文件的绝对路径:

NSString *absoluteFileName = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"filename.ext"];

2、获取文档根目录下文件的绝对路径:(该目录下文件及文件夹可在 itunes 中共享,并进行增减操作)

    // 获取文档根目录路径,也即itunes共享的目录
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    // 默认只有一个,就取第一个
    NSString *documentsDirectory = [paths objectAtIndex:0];
    // 文档根目录串附加一个文件名,构造出一个该目录下文件的完整路径
    NSString *absoluteFileName = [documentsDirectory stringByAppendingPathComponent:@"filename.ext"];
    

3、判断指定路径下的文件是否存在

    // 获取文档根目录路径,也即itunes共享的目录
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    // 默认只有一个,就取第一个
    NSString *documentsDirectory = [paths objectAtIndex:0];
    // 文档根目录串附加一个文件名,构造出一个该目录下文件的完整路径
    NSString *absoluteFileName = [documentsDirectory stringByAppendingPathComponent:fileName];
    // 文件管理器对象单例获取
    NSFileManager *fileManager = [NSFileManager defaultManager];
    // 判断上面构建的完整路径对应的文件是否存在
    if (![fileManager fileExistsAtPath:absoluteFileName]) {

        // 文件不存在,则用应用包路径再构建该文件的完整路径
        absoluteFileName = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:fileName];
    }

4、多种字符编码文件内容加载

    // 使用Utf-8编码读取该文件内容
    NSString *fileContent = [NSString stringWithContentsOfFile:absoluteFileName encoding:NSUTF8StringEncoding error:nil];

    // 使用 kCFStringEncodingGB_18030_2000 编码读取该文件内容
    NSStringEncoding stringEncoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
    NSString *fileContent = [NSString stringWithContentsOfFile:absoluteFileName encoding:stringEncoding error:nil];

更多的 CFStringConvertEncodingToNSStringEncoding 编码标识转换函数的参数可查看 CoreFoundation/CFStringEncodingExt.h 中的相关声明,逐个试试,猜猜,就可能找到想要的,以实测为准。

5、文件内容读取成按行的数组:新行字符进行分隔拆分

    NSString *absoluteMtlFileName = [objDir stringByAppendingFormat:@"/%@", mtlFileName];
    NSString *fileContent = [NSString stringWithContentsOfFile:absoluteMtlFileName encoding:NSUTF8StringEncoding error:nil];
    NSArray *rows = [fileContent componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];

6、文件每行内容去除首尾空格:

        row = [row stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

7、文件每行内容按逗号拆分成列数组:空格

        NSArray *spaceDividedColumns = [row componentsSeparatedByString:@","];
时间: 2024-12-31 12:49:21

iOS 文件及字符串相关操作汇总 - 持续更新中......的相关文章

LeetCode All in One 题目讲解汇总(持续更新中...)

终于将LeetCode的免费题刷完了,真是漫长的第一遍啊,估计很多题都忘的差不多了,这次开个题目汇总贴,并附上每道题目的解题连接,方便之后查阅吧~ 如果各位看官们,大神们发现了任何错误,或是代码无法通过OJ,或是有更好的解法,或是有任何疑问,意见和建议的话,请一定要在对应的帖子下面评论区留言告知博主啊,多谢多谢,祝大家刷得愉快,刷得精彩,刷出美好未来- 博主制作了一款iOS的应用"Leetcode Meet Me",里面有Leetcode上所有的题目,并且贴上了博主的解法,随时随地都能

asp.net中ADO SQL数据库 笔记汇总 持续更新中_实用技巧

ADO连接数据库 1)获取连接字符串 方式一: 记住连接字符串 connectionString=" Integrated Security=True; server=. ; database=DBName" 方式二:在visual studio中,点击"视图"à服务资源管理器à右击左侧的"数据连接",选择"添加连接"à服务名: 为一个点.选择数据库名,然后点击"高级",然后复制底部的连接字符串 2)在we

汇总这一年半我所使用过的那些工具[持续更新中]

原文:汇总这一年半我所使用过的那些工具[持续更新中] 前言 马上要回家过年了,来总结下之前自己所使用过的那些工具吧.不论是在工作,还是日常的工作学习中,难免都会使用一些简单的小工具.但有时候一些工具只使用很短的时间,然后当第二次使用的时候,只记得当时使用过,真是记不起工具名称,或者自己把它下载不知道放到什么地方去了.所以自己在此记录一下,本文会持续更新,方便自己日后查找工具. 以下列举都是本人暂时使用过,或者还记得的工具吧. 操作系统 1.操作系统可下载地址:http://msdn.itelly

大数据学习之路(持续更新中...)

在16年8月份至今,一直在努力学习大数据大数据相关的技术,很想了解众多老司机的学习历程.因为大数据涉及的技术很广需要了解的东西也很多,会让很多新手望而却步.所以,我就在自己学习的过程中总结一下学到的内容以及踩到的一些坑,希望得到老司机的指点和新手的借鉴. 前言 在学习大数据之前,先要了解他解决了什么问题,能给我们带来什么价值.一方面,以前IT行业发展没有那么快,系统的应用也不完善,数据库足够支撑业务系统.但是随着行业的发展,系统运行的时间越来越长,搜集到的数据也越来越多,传统的数据库已经不能支撑

这些开源项目,你都知道吗?(持续更新中...)[原创]

原文 这些开源项目,你都知道吗?(持续更新中...)[原创] Json.NET  http://json.codeplex.com/ Json.Net是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单.通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象.让你轻松实现.Net中所有类型(对象,基本数据类型等)和Json的转换.   Math.NET http://www.mathdotn

使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【开篇】【持续更新中。。。】

原文:使用ASP.NET Web Api构建基于REST风格的服务实战系列教程[开篇][持续更新中...] 最近发现web api很火,园内也有各种大神已经在研究,本人在asp.net官网上看到一个系列教程,原文地址:http://bitoftech.net/2013/11/25/detailed-tutorial-building-asp-net-web-api-restful-service/.于是打算跟着学一下,把学习过程记录在博客园的同时也分享给大家. 每一篇结束后我都会把代码共享 由于

Asp.Net Web API 2 官网菜鸟学习系列导航[持续更新中]

原文:Asp.Net Web API 2 官网菜鸟学习系列导航[持续更新中] 前言 本来一直参见于微软官网进行学习的, 官网网址http://www.asp.net/web-api.出于自己想锻炼一下学习阅读英文文章的目的,又可以学习下微软新发布的技术,其实也很久了,但自己菜鸟一枚,对自己来说都是新技术了.鉴于以上两个原因,本人打算借助google翻译和有道词典,来翻译学习这个系列,并通过博客园来记录自己的翻译学习过程.由于自己阅读水平的确太菜,在借助工具的情况下,有时候搞出来的也是蹩脚的语句,

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(1)-前言与目录(持续更新中...)

原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(1)-前言与目录(持续更新中...) 曾几何时我想写一个系列的文章,但是由于工作很忙,一直没有时间更新博客.博客园园龄都1年了,却一直都是空空的,网上后台管理系统,权限管理系统多如猴毛,各个大虾都有自己的想法和方式.当然我还未能是大虾, 前言 做一件事情之前总会有前言,首先本项目的原型是我之前在一家公司研发的一个制造业ERP系统,已经上线并开始运行,按道理来说这是一套合格的系统方案.之前原型是 Asp.

Android LookAround开元之旅(持续更新中...)

http://blog.csdn.net/lancees/article/details/17696805 应用介绍 随便瞧瞧是一款为android用户量身定做的免费图文资讯软件 集美食,星座,写真,文学,美女等频道于一体 界面简洁,操作流畅,图文分享,个性收藏 是广大卓粉的必备神器 APK下载 -->http://apk.91.com/Soft/Detail.aspx?Platform=Android&f_id=40495952         工程简介以下是代码结构图: 该工程用到以下开