以二进制方式向磁盘中存入数据并读取
.h文件
public:
explicit DataStreamService(QObject *parent = nullptr);
QFile file;<br /> QDataStream stream;
void openWrite(QString expName, QString fileName);<br /> void setData(QByteArray array);
void openRead(QString expName, QString fileName);<br /> bool hasNext();<br /> QByteArray getData();
void closeFile();
private:
QString rootDir = “data”;
void initDir(QString expName);
cpp文件
void DataStreamService::initDir(QString expName)
{
QDir dir;
if(!dir.exists(rootDir + “/“ + expName)) {
dir.mkpath(rootDir + “/“ + expName);
}
}
void DataStreamService::openWrite(QString expName, QString fileName)
{
this->initDir(expName);
file.setFileName(rootDir + “/“ + expName + “/“ + fileName);
file.open(QIODevice::WriteOnly);
stream.setDevice(&file);
stream.setVersion(QDataStream::Qt_5_9);
}
void DataStreamService::setData(QByteArray array)
{
stream << array;
}
void DataStreamService::openRead(QString expName, QString fileName)
{
file.setFileName(rootDir + “/“ + expName + “/“ + fileName);
file.open(QIODevice::ReadOnly);
stream.setDevice(&file);
}
bool DataStreamService::hasNext()
{
if(stream.atEnd()) {
return false;
}
return true;
}
QByteArray DataStreamService::getData()
{
QByteArray array;
if(stream.atEnd()) {
return NULL;
} else {
stream >> array;
}
return array;
}
void DataStreamService::closeFile()
{
file.close();
}
存入的类型为QByteArray , 读取出来也是这个类型