热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Cocos2Dx文件读取I/O

cocos2d-x提供了getFileData接口,使用方法如下char*file(char*)CCFileUtils::sharedFileUtils()-ge

cocos2d-x提供了getFileData接口,使用方法如下

char* file = (char*)CCFileUtils::sharedFileUtils()->getFileData("testjson.json","r", &size); 


其它方法如下:

参照了别人的程序,修改了Path:

//string path = CCFileUtils::sharedFileUtils()->getWriteablePath()+pFileName ;string path = CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(pFileName.c_str());

通过fullPathFromRelativePath, 看名称,好像要你输入相对路径,其实你只需要输入Resource文件夹里的某个文件名,它就会识别这个文件的路径。所以你要传入的不是路径,而是参数,官方API文档误导人。

const char* fullPathFromRelativePath(const char *  pszRelativePath) 

Generate the absolute path of the file.

Parameters
pszRelativePathThe relative path of the file.
Returns
The absolute path of the file.
Warning
We only add the ResourcePath before the relative path of the file.
Deprecated:
Please use fullPathForFilename instead.


//
// TDInvFileUtils.h
// MyCocoa2DTest
//
// Created by 韦 柱全 on 13-2-27.
//
//#ifndef __MyCocoa2DTest__TDInvFileUtils__
#define __MyCocoa2DTest__TDInvFileUtils__#include
#include "cocos2d.h"
using namespace cocos2d;
using namespace std;/** 负责操作文件储存和读取*/class CCReadFile {
public:/** 读取本地文件,返回数据 */static string getFileByName(string pFileName);/** 储存内容到文件 */static bool saveFile(char* pContent,string pFileName);};#endif /* defined(__MyCocoa2DTest__TDInvFileUtils__) */



  

//
// TDInvFileUtils.cpp
// MyCocoa2DTest
//
// Created by 韦 柱全 on 13-2-27.
//
//#include "CCReadFile.h"string CCReadFile::getFileByName(string pFileName){//string path = CCFileUtils::sharedFileUtils()->getWriteablePath()+pFileName ;string path = CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(pFileName.c_str());CCLOG("path = %s",path.c_str());FILE* file = fopen(path.c_str(), "r");if (file) {char* buf; int len; /*获取长度*/fseek(file, 0, SEEK_END); //移到尾部len = ftell(file); //提取长度rewind(file); //回归原位CCLOG("count the file content len = %d",len);//分配buf空间buf = (char*)malloc(sizeof(char) * len + 1);if (!buf) {CCLOG("malloc space is not enough.");return NULL;}//读取文件//读取进的buf,单位大小,长度,文件指针int rLen = fread(buf, sizeof(char), len, file);buf[rLen] = '\0';CCLOG("has read Length = %d",rLen);CCLOG("has read content = %s",buf);string result = buf;fclose(file);free(buf);return result;}elseCCLOG("open file error.");return NULL;
}bool CCReadFile::saveFile(char *pContent, string pFileName){//第一获取储存的文件路径string path = CCFileUtils::sharedFileUtils()->getWriteablePath() + pFileName;CCLOG("wanna save file path = %s",path.c_str());//创建一个文件指针//路径、模式FILE* file = fopen(path.c_str(), "w");if (file) {fputs(pContent, file);fclose(file);}elseCCLOG("save file error.");return false;
}




推荐阅读
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • 题面:P3178[HAOI2015]树上操作好像其他人都嫌这道题太容易了懒得讲,好吧那我讲。题解:第一个操作和第二个操作本质上是一样的&# ... [详细]
  • 使用jQuery与百度地图API实现地址转经纬度功能
    本文详细介绍了如何利用jQuery和百度地图API将地址转换为经纬度,包括申请API密钥、页面构建及核心代码实现。 ... [详细]
  • 本文详细介绍了Socket在Linux内核中的实现机制,包括基本的Socket结构、协议操作集以及不同协议下的具体实现。通过这些内容,读者可以更好地理解Socket的工作原理。 ... [详细]
  • 本文详细介绍了如何在PHP中使用Memcached进行数据缓存,包括服务器连接、数据操作、高级功能等。 ... [详细]
  • 在学习了Splay树的基本查找功能后,可能会觉得它与普通的二叉查找树没有太大的区别,仅仅是通过splay操作减少了时间开销。然而,Splay树之所以被誉为“序列之王”,主要在于其强大的区间操作能力。 ... [详细]
  • Kubernetes Services详解
    本文深入探讨了Kubernetes中的服务(Services)概念,解释了如何通过Services实现Pods之间的稳定通信,以及如何管理没有选择器的服务。 ... [详细]
  • 来自FallDream的博客,未经允许,请勿转载,谢谢。一天一套noi简直了.昨天勉强做完了noi2011今天教练又丢出来一套noi ... [详细]
  • 本文详细介绍了在MyBatis框架中如何通过#和$两种方式来传递SQL查询参数。使用#方式可以提高执行效率,而使用$则有助于在复杂SQL语句中更好地查看日志。此外,文章还探讨了不同场景下的参数传递方法,包括实体对象、基本数据类型以及混合参数的使用。 ... [详细]
  • This article explores the process of integrating Promises into Ext Ajax calls for a more functional programming approach, along with detailed steps on testing these asynchronous operations. ... [详细]
  • 使用 ModelAttribute 实现页面数据自动填充
    本文介绍了如何利用 Spring MVC 中的 ModelAttribute 注解,在页面跳转后自动填充表单数据。主要探讨了两种实现方法及其背后的原理。 ... [详细]
  • 本文介绍了如何通过安装和配置php_uploadprogress扩展来实现文件上传时的进度条显示功能。通过一个简单的示例,详细解释了从安装扩展到编写具体代码的全过程。 ... [详细]
  • 本文探讨了在 APICloud 平台使用 execScript 方法时如何正确传递对象参数,并提供了详细的示例和解释。 ... [详细]
  • 本文总结了 #define 在 C/C++ 编程中的多种用途和技巧,包括定义常量、函数、宏以及条件编译等,并提供了详细的示例和注意事项。 ... [详细]
  • Python网络编程:深入探讨TCP粘包问题及解决方案
    本文详细探讨了TCP协议下的粘包现象及其产生的原因,并提供了通过自定义报头解决粘包问题的具体实现方案。同时,对比了TCP与UDP协议在数据传输上的不同特性。 ... [详细]
author-avatar
墨尔本晴上残留的余温丶_856
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有