iOS_文件操作 NSNumber NSValue NSDate

来源:互联网 发布:上海大学乐乎硬盘 编辑:程序博客网 时间:2024/06/06 15:01
//------------NSFileManager 文件或目录管理类-------------//1.创建对象        //defaultManager创建出来对象都是同一个对象(单例模式:想让一个类只创建一个对象)        NSFileManager *fm = [NSFileManager defaultManager];        NSFileManager *fm_1 = [NSFileManager defaultManager];        NSLog(@"%p---%p",fm,fm_1);        //2. 获取目录下的所有文件和目录        //不显示子目录        NSArray *array = [fm contentsOfDirectoryAtPath:@"/Users/apple/Desktop/dir" error:nil];        NSLog(@"%@",array);        //包括子目录        NSArray *array_1 = [fm subpathsOfDirectoryAtPath:@"/Users/apple/Desktop/dir" error:nil];        NSLog(@"%@",array_1);        //3.创建目录。创建文件        //参数2表示是否创建中间目录        BOOL b = [fm createDirectoryAtPath:@"/Users/apple/Desktop/dir/a.txt" withIntermediateDirectories:YES attributes:nil error:nil];        NSLog(@"%i",b);//创建了文件或已经存在,都会返回1                //创建文件        bool b_1 = [fm createFileAtPath:@"/Users/apple/Desktop/dir/a" contents:nil attributes:nil];        NSLog(@"%i",b_1);        //4.复制文件, 移动文件, 删除文件        //参数1:源文件   参数2:目标文件        bool b_2 = [fm copyItemAtPath:@"/Users/apple/Desktop/dir/abc/123.txt" toPath:@"/Users/apple/Desktop/dir/ab.txt" error:nil];        NSLog(@"%i",b_2);//操作成功范围1.。当目标文件存在是返回0                //移动文件        bool b_3 = [fm moveItemAtPath:@"/Users/apple/Desktop/dir/abc/123.txt" toPath:@"/Users/apple/Desktop/dir/abcd.txt" error:nil];        NSLog(@"%i",b_3);//目标文件必须是.txt结尾                //删除文件        bool b_4 = [fm removeItemAtPath:@"/Users/apple/Desktop/dir/abc" error:nil];        NSLog(@"%i",b_4);//移除第二个文件是,第一个会恢复        //5.判断文件是否存在        bool b_5 = [fm fileExistsAtPath:@"/Users/apple/Desktop/dir/word"];        NSLog(@"%i",b_5);              //----------------文件读写操作 NSFileHandle------------------//1. 打开文件        //(1)创建对象打开文件        NSFileHandle *fh = [NSFileHandle fileHandleForReadingAtPath:@"/Users/apple/Desktop/dir/abc.txt"];        if (fh == nil) {            NSLog(@"文件打开失败");            return 1;        }        NSLog(@"文件打开成功");                //(2)读取文件数据        //读取指定长度的数据   readDataOfLength:12        //一直读取直到文件末尾 readDataToEndOfFile        NSData *data = [fh readDataOfLength:100];        //NSLog(@"data = %@",data);//NSData表示二进制的数据        //读取出得二进制数据转化为字符串        NSString *info = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];        NSLog(@"%@",info); //写文件        NSFileHandle *fh_1 = [NSFileHandle fileHandleForWritingAtPath:@"/Users/apple/Desktop/dir/abc.txt"];        //(3)写入数据        NSString *str =  @"好吃不过饺子,好玩不过赶紧";        //转化        NSData *data_1 = [str dataUsingEncoding:NSUTF8StringEncoding];        //清空文件内容        [fh_1 truncateFileAtOffset:0];        [fh_1 seekToEndOfFile];  //文件读写位置设置到文件的末尾        [fh_1 writeData:data_1];        //(4)移动文件读写位置        [fh_1 seekToFileOffset:12];        [fh_1 writeData:data_1];             //---------------- NSValue和NSNumber的使用------------------//(1)基本数据类型与对象类型相互转化        int a = 20;        int c = 10;        NSNumber *num_1 = [NSNumber numberWithInt:a];        NSNumber *num_2 = [NSNumber numberWithInt:c];        NSArray *array_2 = [[NSArray alloc]initWithObjects:num_1,num_2, nil];        NSLog(@"%@-----%@",array_2[1],array_2[0]);        NSLog(@"%i----%i",[array_2[1] intValue],[array_2[0] intValue]);//(2)把一个结构体变量存储到NSArray中        typedef struct Person{            int age;            float height;        }person;        person chenliang = {23,174};        //作用: 把C的类型的数据转化为NSValue类型        //参数1:数据的地址    参数2:数据的类型   @encode作用把类型转化为字符串        NSValue *valve = [[NSValue alloc]initWithBytes:&chenliang objCType:@encode(person)];        NSMutableArray *marray = [[NSMutableArray alloc]init];        [marray addObject:valve];        NSLog(@"%@",marray);        //从NSValue中解析出存储的数据        person newPerson;        [valve getValue:&newPerson];        NSLog(@"age = %d,height = %f",newPerson.age,newPerson.height);            //---------------- NSDate的使用------------------ //(1)获取当前时间        NSDate *date = [NSDate date];//时区概念 +8区        NSLog(@"%@",date);        //(2)时间格式化输出        NSDateFormatter *dataformatter = [[NSDateFormatter alloc]init];        [dataformatter setDateFormat:@"yyyy/MM/dd hh:mm:ss S"];        NSString *dataString = [dataformatter stringFromDate:date];        NSLog(@"%@",dataString);        //(3)获取年,月,日        //  设置需要的格式        //(4)计算某个操作所消耗的时间--计算时间差        NSDate *beginDate = [NSDate date];        long sum=0;        for (long i=0; i<1000000000; i++) {            sum = sum+i;        }        NSDate *endDate = [NSDate date];                double interval = [endDate timeIntervalSinceDate:beginDate];        NSLog(@"interval = %f",interval);        

0 0
原创粉丝点击