C++のストリームについての質問です。
JavaのByteArrayInputStreamのような、バッファを対象とするストリームはありますでしょうか?
やりたいこととしては、あるリソースを管理するクラスがあり、そのクラスはファイルからの読み込みとバッファからの読み込みに対応しています。
簡単にですが、やっていることを説明するクラスを以下に記載します。
class CResource
{
public :
SetFile(const char* szFileName) {
std::ifstream ifs(szFileName, std::ios::in | std::ios::binary);
std::istream is(ifs.rdbuf());
int size; // サイズ
// 必要な箇所にストリームのポインタをセットする
・・・
ReadData(is, size);
}
SetMemory(const char* lpcBuffer) {
// std::ifstream ifs(szFileName, std::ios::in | std::ios::binary); ←★ここにバッファからストリームを作成するクラス
std::istream is(ifs.rdbuf());
int size; // サイズ
// 必要な箇所にストリームのポインタをセットする
・・・
ReadData(is, size);
}
private :
void ReadData(std::istream& is, int size) {
buf.resize(size);
is.read(&buf[0], size);
}
private :
std::vector<char> buf;
}; ★に該当するクラスはありますでしょうか?
宜しくお願いいたします。