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:@","];





你可能感兴趣的:(iOS 文件及字符串相关操作汇总 - 持续更新中......)