(一)Cocos2d-x学习之文件操作

一:UserDefault

UserDefault是一个单例,通过:UserDefault::getInstance();来获取这个类的实例。

UserDefault使用哈希表结构,Key-Value,Key--索引,Value--值。

代码如下:

    //UserDefault
    UserDefault::getInstance()->setBoolForKey("bool", true);
    UserDefault::getInstance()->setIntegerForKey("score", 5000);
    
    bool b = UserDefault::getInstance()->getBoolForKey("bool");
    log("%d",b);
    int j = UserDefault::getInstance()->getIntegerForKey("score");
    log("%d",j);
    std::string path = UserDefault::getInstance()->getXMLFilePath();//获取可读可写的文件路径
    log("%s",path.c_str());
    bool c = UserDefault::getInstance()->isXMLFileExist();
    log("%d",c);//0?

二:文件路径

应用程序中的cpp文件是只读的,如果我们要修改文件,需要将文件拷贝到一个可读,可写的文件夹下,然后再做修改。

代码如下:

    //获取文件路径
    std::string path = FileUtils::getInstance()->getWritablePath();//获取可写路径
    log("%s",path.c_str());
    path += "co.txt";//拼接路径
    std::string data;
    if (!FileUtils::getInstance()->isFileExist(path)) {//判断路径是否存在
        data = FileUtils::getInstance()->getStringFromFile("co.txt");//获取.txt文件中的内容
        log("%s",data.c_str());
        
        FILE* file = fopen(path.c_str(), "w");//打开文件,如果不存在,则创建一个空的文件
        fputs(data.c_str(), file);//写入
        fflush(file);//清除缓存
        fclose(file);//关闭
    }else{
        data = FileUtils::getInstance()->getStringFromFile(path);
        log("%s",data.c_str());
    }
    //标签显示
    auto label = Label::createWithTTF(data,"fonts/Marker Felt.ttf",50);
    label->setPosition(Vec2(600,600));
    this->addChild(label);
    //修改内容
    FILE* changeFile = fopen(path.c_str(), "w");
    fputs("gss", changeFile);
    fclose(changeFile);


下一篇 数据解析(json,xml)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值