创建了.dat文件,存入了0x00-0xFF的十六进制数据。我想在qt中实现将.dat文件中的数据读取出来,并且放在unsigned char类型的数组中。
DatUtil类实现保存和读取本地文件。
class DatUtil: public QObject {
Q_OBJECT
public:
static bool SaveDatFile(const QVariant &dat, const QString &file_name);
static bool ReadDatFile(QVariant &dat, const QString &file_name);
};
/**
* @brief DatUtil::SaveDatFile 本地保存dat
* @param dat
* @param file_name
* @return
*/
bool DatUtil::SaveDatFile(const QVariant &dat, const QString &file_name) {
QFile file(file_name);
bool is_ok = file.open(QIODevice::WriteOnly | QIODevice::Truncate);
if (is_ok == true ) {
QDataStream stream(&file);
stream << dat;
file.close();
return true;
}
return false;
}
/**
* @brief DatUtil::ReadDatFile 本地读取dat
* @param dat
* @param file_name
* @return
*/
bool DatUtil::ReadDatFile(QVariant &dat, const QString &file_name) {
dat.clear();
if(FileUtil::FileIsExist(file_name)) {
QFile file (file_name);
bool isOk = file.open(QIODevice::ReadOnly);
if (isOk == true ) {
QDataStream stream(&file);
stream >> dat;
file.close();
return true;
}
return false;
}
return false;
}
bool FileUtil::FileIsExist(const QString &strFile) {
QFile tempFile(strFile);
return tempFile.exists();
}
QByteArray 有一个toHex 然后 toInt(16);