Objective--C之文件操作练习代码(随便写的,有错误)

 1 #import <Foundation/Foundation.h>
 2
 3 @interface Baby : NSObject <NSCoding>
 4 //声明实例变量
 5 @property (nonatomic, assign) int age;
 6 @property (nonatomic, retain) NSString *name;
 7 @property (nonatomic, assign) double score;
 8
 9 - (id)initWithAge:(int)a andName:(NSString *)n andScore:(double)s;
10
11 - (void)print;
12
13 @end
14
15 #import "Baby.h"
16
17 @implementation Baby
18
19 - (id)initWithAge:(int)a andName:(NSString *)n andScore:(double)s
20 {
21     if (self = [super init])
22     {
23         _age = a;
24         self.name = n;
25         _score = s;
26     }
27     return self;
28 }
29 //归档(将数据存入文件)
30 - (void)encodeWithCoder:(NSCoder *)aCoder//往文件中写入实例变量
31 {
32     [aCoder encodeObject:[NSNumber numberWithInt:_age] forKey:@"1"];
33     [aCoder encodeObject:_name forKey:@"2"];
34     [aCoder encodeObject:[NSNumber numberWithDouble:_score] forKey:@"3"];
35 }
36 //解档并初始化(读取文件中的数据)
37 - (nullable instancetype)initWithCoder:(NSCoder *)aDecoder//从文件中读取实例变量为当前对象赋值
38 {
39     if (self = [super init])
40     {
41         _age = [[aDecoder decodeObjectForKey:@"1"] intValue];
42         self.name = [aDecoder decodeObjectForKey:@"2"];
43         _score = [[aDecoder decodeObjectForKey:@"3"] doubleValue];
44     }
45     return self;
46 }
47
48
49 - (void)print
50 {
51     NSLog(@"Age = %d, Name = %@, Score = %.2lf", _age, self.name, _score);
52 }
53
54 - (void)dealloc
55 {
56     [_name release];
57     [super dealloc];
58 }
59
60 @end
61
62 #import <Foundation/Foundation.h>
63 #import "Baby.h"
64 int main(int argc, const char * argv[]) {
65     @autoreleasepool
66     {
67 #pragma mark - 管理文件和目录
68         //创建一个NSFileManager对象
69         NSFileManager *fm = [NSFileManager defaultManager];
70         NSError *err = nil;
71         NSDictionary *attr = [fm attributesOfItemAtPath:@"filePath" error:&err];
72         //从属性字典里取出一个特定的属性:文件大小
73         int filesize = [[attr objectForKey:NSFileSize] intValue];
74         NSData *data = [fm contentsAtPath:@"/Users/hskj/AddressCard.txt"];
75 //        AddressCard *card1 = [NSKeyedUnarchiver unarchiveObjectWithData:data];
76 //        NSLog(@"card1 %@", card1);
77         [fm createFileAtPath:@"/Users/hskj/AddressCard.txt" contents:data attributes:nil];
78         //removeItemAtPath:error:删除指定的文件, 如:
79         [fm removeItemAtPath:@"/Users/hskj/AddressCard.txt" error:&err];
80         //fileExistsAtPath:判断指定文件是否存在,如
81         [fm fileExistsAtPath:@"/Users/hskj/AddressCard.txt"];
82         //copyItemAtPath:toPath:error:  把第一个参数中指定的文件内容拷贝到toPath指定的文件中,如:
83         [fm copyItemAtPath:@"/Users/hskj/AddressCard1.txt" toPath:@"/Users/hskj/AddressCard2.txt" error:&err];
84
85 #pragma mark - NSCoding协议例题
86         Baby *b = [[Baby alloc] initWithAge:23 andName:@"songlei" andScore:99   ];
87         [b print];
88
89         NSString *pathDirectory = [NSString stringWithFormat:@"%@/Users/hskj/songlei.txt", NSHomeDirectory()];
90         //归档类:把对象b归档到此文件中去(此时系统会自动调用协议中的归档方法)
91         [NSKeyedArchiver archiveRootObject:b toFile:pathDirectory];
92         //解档类:把对象b1从此文件中去取出(此时系统会自动调用协议中的接档方法)
93         Baby *b1 = [NSKeyedUnarchiver unarchiveObjectWithFile:pathDirectory];
94         [b1 print];
95     }
96     return 0;
97 }
时间: 2024-10-26 08:34:19

Objective--C之文件操作练习代码(随便写的,有错误)的相关文章

集合、深浅拷贝、文件操作(读、写、追加)函数初识(参数)

小数据池 #int ==比较数值 is 比较内存地址 id 测试内存地址 #str 不能含有特俗字符 单个元素*数字,不能超过21 i1 = 'a'*20 i = 'a'*20 id一样 i1 = 'a'*21 i = 'a'*21 id不一样 编码 ascii   英文的数字,字母,特殊字符 字节 8位表示一个字节 字符 内容的最小组成单位 abc  a一个字符 中国 中  一个字符 unicode :万国码 期初 两个字节,表示一个字符2**16不够用 升级 四个字节,表示一个字符2**32

PHP中文件操作(2)-- 写文件

1.fread - 读取文件(可安全用于二进制文件) 语法:string fread ( int $handle , int $length ) $filename = "aa.txt"; $fp = fopen($filename, "a"); $con = "\r\n你好"; //循环写入 for ($i=0; $i <5; $i++) { //写入 fwrite($fp, $con); } fclose($fp); 结果: 2.fil

文件操作(创建和写)

String separator = File.separator;  String filename = "myfile.txt";  String dir = "mydir1"+separator+"mydir2";  File f = new File(dir,filename);    if(f.exists()){   System.out.println("文件名:"+f.getAbsolutePath());  

PYDay6- 内置函数、验证码、文件操作

1.内置函数 1.1Python的内置函数 abs() dict() help() min() setattr() all() dir() hex() next() slice() any() divmod() id() object() sorted() ascii() enumerate() input() oct() staticmethod() bin() eval() int() open() str() bool() exec() isinstance() ord() sum() b

一起talk C栗子吧(第一百四十三回:C语言实例--文件操作:基于文件指针三)

各位看官们,大家好,上一回中咱们说的是基于文件指针进行文件操作的例子,这一回咱们继续说该例子.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在上一回中详细地介绍了标准库中与文件操作相关的函数.不过,限于时间的原因,没有举具体的例子.还是那句老话,只说不练,不是我们的风格.因此,今天我们将通过具体的例子来说明如何使用文件指针来操作文件. 对文件的操作,还是使用我总结的文件操作三步曲比较好: p_file = fopen(file_name,"w"); //打开文件 re

三元运算、文件操作

三元运算: 三元运算又称三目运算,是对简单的条件语句的简写.如: 简单条件语句: if 条件成立: val = 1 else: val = 2 变成三元运算是: val = 1 if 条件成立 else 2 文件操作: 文件操作包括读.写.修改. 读: f = open( file = ' F: /工作日常/文件名.txt' , mode = 'r', encoding = 'utf-8')   # 'r' 表示以(文本)读的模式打开文件(只能把文本转化成字符串), encoding= 的作用是

关于C语言文件操作

关于C语言的文件操作之前我也写过一篇博客来介绍,但是当时写的很不全面,只是简单的使用了一下 ,今天再从新学习一下. 1.文件的写 首先还是先看一个简单的例子: include<stdio.h> int main() { FILE *fp; //声明一个文件指针,指向文件缓冲区的首地址 char ch; if( (fp = fopen("file_1.txt","a")) == NULL ) //w+打开可读写文件,若文件存在则清零,不存在则新建文件,a

python基础-第四篇-4.2文件操作

基本打开模式 文件操作的流程:打开文件,操作文件,关闭文件 打开文件方法:open(文件名,模式,编码) file = open(‘文件名’) 模式在不给值的情况下,默认为只读,而且如果是非当前的目录下文件名要加绝对路径 ‘r’--只读 file_name.read()   一次性把指针后的内容全部读出来 file_name.readlines()  把指针后内容,以列表的形式每行读出 f = open('ha.log','r') data1 = f.readlines() f.close()

python-day3 文件操作

----python3文件操作 #读取, 就不能写,  写就报错 F=open('a.txt',mode='r',encoding='utf-8') data=F.read() print (data) F.close() mode=r+ -->读 和写 ,没有 这个文件 报错 data1=F.readline() print (data1) -->打印第一行 data2=F.readlines() print (data2) -->将内容打印成列表,已换行分割 print (F.rea