1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
#include "RawFile.h"
#include <fstream>
#include <iostream>
RawFile::RawFile(const std::string & _filePath)
: m_filePath(_filePath)
, m_valid(false)
{
m_valid = readFile();
}
RawFile::~RawFile()
{
}
bool RawFile::isValid() const
{
return m_valid;
}
const char * RawFile::data() const
{
return m_data.data();
}
size_t RawFile::size() const
{
return m_data.size();
}
bool RawFile::readFile()
{
std::ifstream ifs(m_filePath, std::ios::in | std::ios::binary);
if (!ifs)
{
std::cerr << "Reading from file \"" << m_filePath << "\" failed." << std::endl;
return false;
}
readRawData(ifs);
ifs.close();
return true;
}
void RawFile::readRawData(std::ifstream & ifs)
{
ifs.seekg(0, std::ios::end);
const size_t _size = static_cast<size_t>(ifs.tellg());
m_data.resize(_size);
ifs.seekg(0, std::ios::beg);
ifs.read(m_data.data(), static_cast<std::streamsize>(_size));
}
|