数据缓存&&文件缓存方法

原创 2013年12月05日 15:16:14

缓存方式有很多,其中本人感觉文件缓存是比较简单的一种,下边这是一种文件缓存方法:

方法阐述:主要的去存储网络解析得到的json串从而达到缓存数据的目的

hhcommonClass.h文件中:

 

@interface hhcommonClass : NSObject

///根据FileName获取Document内路径

+(NSString*)GetFileDocPath:(NSString*)fileName;

//搜索Documnet文件夹下所有文件

+(NSMutableArray*)SearchAllFiles;

 

///String到本地Cache文件内

+(BOOL)WriteStrToCacheFile:(NSString*)str fileName:(NSString*)_fileName;

//从本地Cache文件读取string

+(NSString*)ReadStrFromCacheFile:(NSString*)fileName;

//删除本地所有Cache文件

+(int)DeleteAllCacheFile;

 

hhcommonClass.m文件中:

@implementation hhcommonClass

+(NSString*)GetFileDocPath:(NSString*)fileName

{

    NSArray *paths= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString*documentsDirectory = [paths objectAtIndex:0];

    return[documentsDirectory stringByAppendingPathComponent:fileName];

}

+(BOOL)WriteStrToCacheFile:(NSString*)strfileName:(NSString*)_fileName

{

    if(str==nil||_fileName==nil)

        return NO;

    NSString*filePath = [hhcommonClass GetFileDocPath:[NSString stringWithFormat:@"%@.yfch",_fileName]];

    [str writeToFile:filePathatomically:YES encoding:NSUTF8StringEncoding error:nil];

    return YES;

}

 

+(NSString*)ReadStrFromCacheFile:(NSString*)fileName

{

    NSString*filePath = [hhcommonClass GetFileDocPath:[NSString stringWithFormat:@"%@.yfch",fileName]];

    if([[NSFileManager defaultManager] fileExistsAtPath:filePath]==NO)

        return @"";

   

    NSString*str = [NSString stringWithContentsOfFile:filePathencoding:NSUTF8StringEncoding error:nil];

    returnstr;

}

+(NSMutableArray*)SearchAllFiles

{

    return[[[NSFileManager defaultManager] contentsOfDirectoryAtPath:[hhcommonClass GetFileDocPath:@""] error:nil] mutableCopy];

}

 

+(int)DeleteAllCacheFile

{

    NSFileManager*fileManager = [[NSFileManager alloc] init];

    NSArray*array = [[fileManager contentsOfDirectoryAtPath:[hhcommonClass GetFileDocPath:@""]error:nil]   pathsMatchingExtensions:[NSArray arrayWithObject:@"yfch"]];

    for(int i=0;i<array.count;i++)

    {

        [fileManager removeItemAtPath:[hhcommonClass GetFileDocPath:[arrayobjectAtIndex:i]] error:nil];

    }

    return  array.count;

}

 

 

 

 

在xxdata.m中的应用(解析数据中的应用):

//pageNum是做的分页

NSString *jsonStr=[[NSString alloc]init];

    if ([[NSString alloc]initWithFormat:@"list%d",pageNum]).length==0) {

        //NSData类型的返回值转换成NSString类型

        jsonStr =[[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

        [hhcommonClass WriteStrToCacheFile:jsonStr fileName: [[NSString alloc]initWithFormat:@"list%d",pageNum]];

    }else{

            jsonStr= [hhcommonClass  ReadStrFromCacheFile: [[NSString alloc]initWithFormat:@"list%d",pageNum]];

          }

相关文章推荐

处理文件缓存的方法

  • 2017年11月08日 09:57
  • 3KB
  • 下载

Android利用sharedpreferences缓存对象和数组数据与文件传输

SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceState保存一般...

C#清除IE临时文件缓存cookies的方法及核心代码

摘自:http://www.zhixing123.cn/net/c-ie-cookies-clear.html 如何清除IE缓存(Internet临时文件,Cookie,历史记录,表单记录,上网...
  • zzx3q
  • zzx3q
  • 2012年08月17日 10:23
  • 2680

js 文件缓存处理方法

由于效率的缘故,浏览器通常会缓存js文件,这就给我们带了一个问题:当服务器端部署的项目中的js文件进行了修改后,如果再客户端不手动去刷新一次页面,js的修改效果就不会起作用,因为浏览器还是用的缓存在本...
  • e_wsq
  • e_wsq
  • 2012年02月12日 04:53
  • 1046

CacheDependency 实现xml文件与缓存数据同步更新

用CacheDependency 实现xml文件与缓存数据同步更新   通常,Web系统的性能瓶颈很可能是由于频繁对数据库或对xml等类型的数据源进行操作导致。为了提高性能,应用程序可以将那些频...

ios中 对网络请求数据文件本地缓存

之前对ios缓存机制不了解,期间走了很多弯路。以至于在原来公司的第一个项目没有能够提供缓存机制。全部数据都是实时的网络数据。后来经过自己向周围有经验的ios开发人员请教,了解到NSCoder类,以及N...

android 通过 sharedpreferences 来缓存数据 到xml文件中去 Utils 的创建

package com.example.aynuphone.utils; import android.content.Context; import android.content.SharedP...

unserialize的这个问题是由一个emlog论坛用户在使用时报错而发现的 问题表现情况如下: emlog缓存的保存方式是将php的数据对象(数组)序列化(serialize)后以文件的形式存放,

unserialize的这个问题是由一个emlog论坛用户在使用时报错而发现的 问题表现情况如下: emlog缓存的保存方式是将php的数据对象(数组)序列化(serialize)后以文件...
  • farcall
  • farcall
  • 2014年10月05日 14:09
  • 546
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据缓存&&文件缓存方法
举报原因:
原因补充:

(最多只允许输入30个字)