c ++ istream&& android NDK AssetManager?

时间:2015-03-06 18:40:46

标签: c++ android-ndk

我目前正在使用NDK AssetManager_openAAsset_read来读取资产文件夹中的文件。

    // open a file and read its content 
    AAsset* asset AAssetManager_open(engine.app->activity->assetManager, name.c_str(), AASSET_MODE_UNKNOWN);
    if (NULL == asset) {
        LOGE("_ASSET_NOT_FOUND_: %s", name.c_str());
        return nullptr;
    }

    long size = AAsset_getLength(asset);
    void* buffer = malloc(size);

    AAsset_read(asset, buffer, size);
    AAsset_close(asset);

NDK AAsset提供以下功能:

   int AAsset_read(AAsset* asset, void* buf, size_t count);
   off_t AAsset_seek(AAsset* asset, off_t offset, int whence);
   void AAsset_close(AAsset* asset);
   const void* AAsset_getBuffer(AAsset* asset);
   off_t AAsset_getLength(AAsset* asset);
   off_t AAsset_getRemainingLength(AAsset* asset);

我正在寻找一种为std::istream构建AAsset*的方法 我不想读取所有文件内容,然后创建istream

关于如何构建istream AAsset* }的任何想法

0 个答案:

没有答案