使用Ogre读取文件

Ogre为我们实现了一个叫做Archive的类:文档存档类(我的理解是一个文件系统的目录,或者一个压缩包)。
使用该类可以读取指定目录中的指定文件,并且返回该文件的数据流DataStream,之后就可以使用数据流来获取文件中的内容。

使用Archive读取文件代码:

// 使用Archive来读取文件系统目录(压缩文件目录)

void ReadFileFromPath(const String& dirPath)
{

   String type = "FileSystem";

   // 根据路径创建档案文件对象

   Archive* pArchive = ArchiveManager::getSingletonPtr()->load(dirPath, type, true);

  // 列出所有的文件名

  StringVectorPtr filenames = pArchive->list(true);

  StringVector::iterator it = filenames->begin();

  for (; it != paths->end(); ++it)
 {
      String temp = *it;
      DataStreamPtr fileStream = pArchive->open(temp);
      // 将文件内容读取到字符传中
      String str = fileStream->getAsString();
      // 获取一整行内容
      fileStream->getLine(true);
      ....
 }

 //创建文件
 //pArchive->create("filename");

}

实际上Archive::open函数内部是创建的c++标准库的filestream来进行读写文件,因此只要是filestream可以实现的功能Archive都可以实现。
Archive是一个抽象类,Ogre已经实现了两个具体的Archive类,分别是FileSystemArchive和ZipArchive类,一个用于读取系统文件系统中的文件,另一个用于读取压缩包(Zip)中的文件。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容