我目前正在使用NDK AssetManager_open
和AAsset_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*
1>}的任何想法