字符串,数组和字典的简单本地存储!以及复杂类型对象的存储
2014-07-08 09:37
661 查看
- (void)searchDocmentPath
{
//获取存储路径
NSArray *path =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSLog(@"%@", path);
}
1.字符串,数组和字典的简单本地存储
#pragma mark
获取documents文件夹位置
- (NSArray *)getPathOfDocuments{
NSArray *paths =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
return paths;
}
- (void)writeString
{
//获取文件路径并写入文件
NSArray *path =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *str = [path
firstObject];
str = [NSString
stringWithFormat:@"%@%@",str,@"/text.txt"];//创建text.txt文件
//初始化一个字符串
NSString *string =
@"快乐的山猫,快乐的吉米!";
//错误提示
NSError *error = nil;
//将字符串写入文件
[string writeToFile:str
atomically:YES
encoding:NSUTF8StringEncoding
error:&error];//将string写入到text.txt文件中
if (error) {
NSLog(@"%@", error);
}
}
- (void)getString{
//获取路径
NSString *str = [NSString
stringWithFormat:@"%@%@",[[self
getPathOfDocuments]
firstObject],@"/text.txt"];
NSError *error = nil;
//读取文件
NSString *string = [[NSString
alloc] initWithContentsOfFile:str
encoding:NSUTF8StringEncoding
error:&error];
if(error){
NSLog(@"%@",error);
}
else {
NSLog(@"string == %@",string);
}
[string
release];
}
- (void)getAndWrite//重复写入
{
//读取文件里的字符串
NSString *str = [NSString
stringWithFormat:@"%@%@",[[self
getPathOfDocuments]
firstObject],@"/text.txt"];
NSError *error = nil;
NSString *string = [[NSString
alloc] initWithContentsOfFile:str
encoding:NSUTF8StringEncoding
error:&error];
//初始化新的字符串
NSString *newStr =
@"快乐的山猫,快乐的吉米!外加快乐的自己!!";
string = [NSString
stringWithFormat:@"%@%@",string,newStr];
[string writeToFile:str
atomically:YES
encoding:NSUTF8StringEncoding
error:&error];
if (error) {
NSLog(@"%@",error);
}
}
#pragma mark
写入数组
- (void)writeArray{
NSString *str = [NSString
stringWithFormat:@"%@%@",[[self
getPathOfDocuments]
firstObject],@"/array.txt"];
NSArray *array = [NSArray
arrayWithObjects:@"1",@"2",@"3",@"4",@"5",
nil];
[array writeToFile:str
atomically:YES];
}
#pragma mark
读取数组
- (void)getArray{
NSString *str = [NSString
stringWithFormat:@"%@%@",[[self
getPathOfDocuments]
firstObject],@"/array.txt"];
NSArray *array = [[NSArray
alloc] initWithContentsOfFile:str];
NSLog(@"array == %@",array);
[array
release];
}
#pragma mark
写入字典
- (void)writeDictionary{
NSString *str = [NSString
stringWithFormat:@"%@%@",[[self
getPathOfDocuments]
firstObject],@"/dic.txt"];
NSDictionary *dic = [NSDictionary
dictionaryWithObjectsAndKeys:@"cat",@"1",@"dog",@"2",@"tager",@"3",
nil];
[dic writeToFile:str
atomically:YES];
}
#pragma mark
读取字典
- (void)getDictionary{
NSString *str = [NSString
stringWithFormat:@"%@%@",[[self
getPathOfDocuments]
firstObject],@"/dic.txt"];
NSDictionary *dic = [NSDictionary
dictionaryWithContentsOfFile:str];
NSLog(@" dic == %@",dic);
}
#pragma mark
写入data
- (void)writeData
{
NSString *str = [NSString
stringWithFormat:@"%@data",[[self
getPathOfDocuments]
firstObject]];
NSString *string =
@"那个谁,说你呢!就是那个谁!!";
NSData *data = [string
dataUsingEncoding:NSUTF8StringEncoding];//将string转换为UTF8二进制编码格式
[data writeToFile:str
atomically:YES];//写入文件
}
#pragma mark
读取data
- (void)readData
{
NSString *str = [NSString
stringWithFormat:@"%@data",[[self
getPathOfDocuments]
firstObject]];
NSData *data = [NSData
dataWithContentsOfFile:str];
NSString *string = [[NSString
alloc] initWithData:data
encoding:NSUTF8StringEncoding];//将data转换为字符串
NSLog(@"string == %@", string);
}
- (void)userDefaultsWrite
{
NSUserDefaults *defaults = [NSUserDefaults
standardUserDefaults];
[defaults
setObject:@"dragon"
forKey:@"name"];
//同步存储(默认是异步)
[defaults
synchronize];
}
- (void)readUserDefauts
{
NSString *value = [[NSUserDefaults
standardUserDefaults] objectForKey:@"name"];
NSLog(@"%@", value);
}
2.复杂类型对象的存储
//归档,即将自己创建的model类对象转换为二进制格式,通过二进制格式进行存储
- (void)archiveObject{
Student *stu = [[Student
alloc]init];
stu.name =
@"cat";
stu.sex =
@"f";
stu.age =
20;
//NSArray *arr = [NSArray arrayWithObject:stu];
NSData *data = [NSKeyedArchiver
archivedDataWithRootObject:stu];
NSArray *path =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *str = [path
firstObject];
str = [NSString
stringWithFormat:@"%@/model",str];
[data writeToFile:str
atomically:YES];
}
//解档。将归档后的二进制文件解当为相对应的model类型对象
- (void)unarchiveObject{
NSArray *path =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *str = [path
firstObject];
str = [NSString
stringWithFormat:@"%@/model",str];
NSData *data = [NSData
dataWithContentsOfFile:str];
Student *model = [NSKeyedUnarchiver
unarchiveObjectWithData:data];
NSLog(@"model == %@",model.name);
}
@end
{
//获取存储路径
NSArray *path =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSLog(@"%@", path);
}
1.字符串,数组和字典的简单本地存储
#pragma mark
获取documents文件夹位置
- (NSArray *)getPathOfDocuments{
NSArray *paths =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
return paths;
}
- (void)writeString
{
//获取文件路径并写入文件
NSArray *path =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *str = [path
firstObject];
str = [NSString
stringWithFormat:@"%@%@",str,@"/text.txt"];//创建text.txt文件
//初始化一个字符串
NSString *string =
@"快乐的山猫,快乐的吉米!";
//错误提示
NSError *error = nil;
//将字符串写入文件
[string writeToFile:str
atomically:YES
encoding:NSUTF8StringEncoding
error:&error];//将string写入到text.txt文件中
if (error) {
NSLog(@"%@", error);
}
}
- (void)getString{
//获取路径
NSString *str = [NSString
stringWithFormat:@"%@%@",[[self
getPathOfDocuments]
firstObject],@"/text.txt"];
NSError *error = nil;
//读取文件
NSString *string = [[NSString
alloc] initWithContentsOfFile:str
encoding:NSUTF8StringEncoding
error:&error];
if(error){
NSLog(@"%@",error);
}
else {
NSLog(@"string == %@",string);
}
[string
release];
}
- (void)getAndWrite//重复写入
{
//读取文件里的字符串
NSString *str = [NSString
stringWithFormat:@"%@%@",[[self
getPathOfDocuments]
firstObject],@"/text.txt"];
NSError *error = nil;
NSString *string = [[NSString
alloc] initWithContentsOfFile:str
encoding:NSUTF8StringEncoding
error:&error];
//初始化新的字符串
NSString *newStr =
@"快乐的山猫,快乐的吉米!外加快乐的自己!!";
string = [NSString
stringWithFormat:@"%@%@",string,newStr];
[string writeToFile:str
atomically:YES
encoding:NSUTF8StringEncoding
error:&error];
if (error) {
NSLog(@"%@",error);
}
}
#pragma mark
写入数组
- (void)writeArray{
NSString *str = [NSString
stringWithFormat:@"%@%@",[[self
getPathOfDocuments]
firstObject],@"/array.txt"];
NSArray *array = [NSArray
arrayWithObjects:@"1",@"2",@"3",@"4",@"5",
nil];
[array writeToFile:str
atomically:YES];
}
#pragma mark
读取数组
- (void)getArray{
NSString *str = [NSString
stringWithFormat:@"%@%@",[[self
getPathOfDocuments]
firstObject],@"/array.txt"];
NSArray *array = [[NSArray
alloc] initWithContentsOfFile:str];
NSLog(@"array == %@",array);
[array
release];
}
#pragma mark
写入字典
- (void)writeDictionary{
NSString *str = [NSString
stringWithFormat:@"%@%@",[[self
getPathOfDocuments]
firstObject],@"/dic.txt"];
NSDictionary *dic = [NSDictionary
dictionaryWithObjectsAndKeys:@"cat",@"1",@"dog",@"2",@"tager",@"3",
nil];
[dic writeToFile:str
atomically:YES];
}
#pragma mark
读取字典
- (void)getDictionary{
NSString *str = [NSString
stringWithFormat:@"%@%@",[[self
getPathOfDocuments]
firstObject],@"/dic.txt"];
NSDictionary *dic = [NSDictionary
dictionaryWithContentsOfFile:str];
NSLog(@" dic == %@",dic);
}
#pragma mark
写入data
- (void)writeData
{
NSString *str = [NSString
stringWithFormat:@"%@data",[[self
getPathOfDocuments]
firstObject]];
NSString *string =
@"那个谁,说你呢!就是那个谁!!";
NSData *data = [string
dataUsingEncoding:NSUTF8StringEncoding];//将string转换为UTF8二进制编码格式
[data writeToFile:str
atomically:YES];//写入文件
}
#pragma mark
读取data
- (void)readData
{
NSString *str = [NSString
stringWithFormat:@"%@data",[[self
getPathOfDocuments]
firstObject]];
NSData *data = [NSData
dataWithContentsOfFile:str];
NSString *string = [[NSString
alloc] initWithData:data
encoding:NSUTF8StringEncoding];//将data转换为字符串
NSLog(@"string == %@", string);
}
- (void)userDefaultsWrite
{
NSUserDefaults *defaults = [NSUserDefaults
standardUserDefaults];
[defaults
setObject:@"dragon"
forKey:@"name"];
//同步存储(默认是异步)
[defaults
synchronize];
}
- (void)readUserDefauts
{
NSString *value = [[NSUserDefaults
standardUserDefaults] objectForKey:@"name"];
NSLog(@"%@", value);
}
2.复杂类型对象的存储
//归档,即将自己创建的model类对象转换为二进制格式,通过二进制格式进行存储
- (void)archiveObject{
Student *stu = [[Student
alloc]init];
stu.name =
@"cat";
stu.sex =
@"f";
stu.age =
20;
//NSArray *arr = [NSArray arrayWithObject:stu];
NSData *data = [NSKeyedArchiver
archivedDataWithRootObject:stu];
NSArray *path =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *str = [path
firstObject];
str = [NSString
stringWithFormat:@"%@/model",str];
[data writeToFile:str
atomically:YES];
}
//解档。将归档后的二进制文件解当为相对应的model类型对象
- (void)unarchiveObject{
NSArray *path =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *str = [path
firstObject];
str = [NSString
stringWithFormat:@"%@/model",str];
NSData *data = [NSData
dataWithContentsOfFile:str];
Student *model = [NSKeyedUnarchiver
unarchiveObjectWithData:data];
NSLog(@"model == %@",model.name);
}
@end
相关文章推荐
- 本地化 存储 字符串 数组 字典 复杂类对象
- .net Mvc Controller 接收 Json/post方式 数组 字典 类型 复杂对象
- .net Mvc Controller 接收 Json/post方式 数组 字典 类型 复杂对象
- Java调用存储过程(返回:简单类型、自定义对象、列表数组)
- \t\t.net Mvc Controller 接收 Json/post方式 数组 字典 类型 复杂对象
- iOS开发:沙盒机制以及利用沙盒存储字符串、数组、字典等数据
- ios 字符串,字典,数组存储到本地文件
- 如何应用Asp.Net Mvc内建功能(DefaultModelBinder)实现简单类型、复杂类型、集合类型,以及字典类型的自动绑定
- iOS开发:沙盒机制以及利用沙盒存储字符串、数组、字典等数据
- iOS开发:沙盒机制以及利用沙盒存储字符串、数组、字典等数据
- iOS开发:沙盒机制以及利用沙盒存储字符串、数组、字典等数据
- 关于本地缓存localstorage与sessionStorage 数组 (array)字符串(string) 对象(object)的存储技巧和注意事项
- 关于本地缓存localstorage与sessionStorage 数组 (array)字符串(string) 对象(object)的存储技巧和注意事项
- 『C++ Primer学习笔记』Chapter 3——string对象、vector对象以及数组的配套类型,C风格字符串问题和处理区别
- 在plsql中,总是遇到在clob类型字段上存储数据出错--字符串太长,现在有一个比较简单的解决办法
- 简单方式下载网页中的文件存储在本地物理路径,或转成字节数组存入数据库中
- springMVC 参数传递之:数组,Map,List,Set以及自定义复杂类型参数
- ASP.Net中用ViewState存储自定义复杂对象后类型转换的一个问题
- Json树形结构数据转Java对象并存储到数据库的实现-超简单的JSON复杂数据处理
- Android Intent传递复杂类型,例如:数组,ArrayList类型,传递类对象