zoukankan      html  css  js  c++  java
  • ios数据处理 简单文件处理

    1.文件路径的获取

    - (void)viewDidLoad
    {
        [super viewDidLoad];
        
        NSString *homeDirectory = NSHomeDirectory();//获得Home路径,应用程序全路径
        NSString *fileDirectory = [homeDirectory stringByAppendingPathComponent:@"temp/app_data.plist"];
        
        //NSSearchPathForDirectoriesInDomains检索路径的方法
        NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentDirectory = [pathArray objectAtIndex:0];
        NSString *fileDirectory2 = [documentDirectory stringByAppendingPathComponent:@"file.txt"];
        
        
        NSString *tempDirectory = NSTemporaryDirectory();
        NSString *file = [tempDirectory stringByAppendingPathComponent:@"file.txt"];

    2.文件操作 

      NSFileManager常用的函数: 

        创建新文件。

    - (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)contents attributes:(NSDictionary *)attributes;   

            path :需要指定文件的全路径;contents,指定文件的内容;attributes:说明文件的属性。该函数的返回值为布尔型,用来表示创建成功或失败。

       创建路径。

    - (BOOL)createDirectoryAtPath:(NSString *)path attributes:(NSDictionary *)attributes;

       删除文件。 

      - (BOOL)removeFileAtPath:(NSString *)path handler:(id)handler

    handler:执行fileManager:willProcessPath:和fileManager:shouldProceedAfterError回调函数。handler也可以被置为nil,这样当删除文件出错的时候,会终止操作,并返回NO。 

    以保存图片为例,主要用到了NSFileManager(使用这个类,可以很方便地访问文件。实现创建、删除、复制粘贴等) 

     注意:  1.使用textField的委托方法textFiledShouldReturn:,其协议是UITextFieldDelegate

               2. 设置textFileld的delegate属性

               3.设置textFileld的Return Key为Go

     

    - (BOOL)textFieldShouldReturn:(UITextField *)textField
    {
        NSArray *paths= NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
        NSString *filePath = [paths objectAtIndex:0];
        filePath = [filePath stringByAppendingPathComponent:[textField.text lastPathComponent]];
        
        NSLog(@"filePath:%@ ",filePath);
        
        //存储文件的全路径和数据
        NSData *imageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:textField.text]];
        
        if (imageData)
        {
            UIImage *image = [UIImage imageWithData:imageData];
            [imageView setImage:image];
            [image release];
            
            //使用NSFileManager对象的createFileAtPath:contents:attributes:方法在指定的位置使用数据创建图片文件,如果需要改变文件的属性,创建包含对应键值的NSDictionary对象,传给attributes。
            [[NSFileManager defaultManager] createFileAtPath:filePath contents:imageData attributes:nil];   
            
        }
        
        [textField resignFirstResponder];
        return YES;

    }

    文件存放在Caches路径下: 

     

    3.文件读写 

     (1)plist文件的读写 (有局限性,只有它支持的数据类型才可以被序列化)

        [testArray writeToFile:filePath atomically:YES]; 

        注:最后一个参数:如果是YES,写入文件的时候,将不会直接写入指定路径,而是会将数据写入一个“辅助文件”,写入成功后,再将辅助文件复制到指定路径。这样的话,实际操作的对象时辅助文件,从而可以避免原文件数据受到破坏。虽然可能增大系统的开销,但是为了保证数据的正确性,还是值得的。建议始终将改值设为YES。 

      (2)Archiver 归档数据的读写 (可以存储复杂的数据对象)

       类似“编码”、“解码” 

  • 相关阅读:
    TypeError: expected string or bytes-like object
    Python之DataFrame更改列名及重排列顺序
    重启nginx 分类: ubuntu 测试 虚拟机 2014-12-12 11:50 126人阅读 评论(0) 收藏
    virtualbox下ubuntu调整分辨率的方法(给力!!!) 分类: ubuntu 虚拟机 2014-12-04 14:01 223人阅读 评论(0) 收藏
    安装Chrome driver/ IE driver 分类: python基础学习 2014-08-15 11:38 1328人阅读 评论(0) 收藏
    Python的静态方法和类成员方法 分类: python基础学习 2014-08-13 14:21 205人阅读 评论(0) 收藏
    linux 修改系统时间 分类: ubuntu 2014-07-28 12:04 209人阅读 评论(0) 收藏
    详解python linecache模块读取文件的方法 分类: python Module 2014-07-21 18:32 1057人阅读 评论(0) 收藏
    解决 WindowsError: [Error 87] 分类: 问题总结 2014-04-09 22:21 1266人阅读 评论(0) 收藏
    静态方法 分类: python基础学习 2014-04-05 19:34 228人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/hanjun/p/2784800.html
Copyright © 2011-2022 走看看