在写文件的时候可能遇到权限不足,修改黑色字体的内容。如下图所示即可
第一种用QSetting读写文件:
写入文件:
QSettings setting(QCoreApplication::applicationDirPath() + "/conf/setting.ini", QSettings::IniFormat);
setting.beginGroup("Login");
setting.setValue("IP", ipValue);
setting.setValue("username", usnameValue);
setting.setValue("passwd", passwdValue);
setting.setValue("isRember", isRember);
setting.endGroup();
读文件:
QString sPathName = QString("%1/conf").arg(QCoreApplication::applicationDirPath());
QDir sPathDir(sPathName);
if (!sPathDir.exists())
{
sPathDir.mkdir(sPathName);
}
QSettings setting(QString("%1/KedaSetting.ini").arg(sPathName), QSettings::IniFormat);
setting.beginGroup("Login");
QString sIP = setting.value("IP").toString();
QString sUsr = setting.value("username").toString();
QString sPwd = setting.value("passwd").toString();
bool isRember = setting.value("isRember").toBool();
以二进制QDataStream写入文件:
QFile file("conf.dat");
if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate))
{
return;
}
QDataStream out(&file);
out << ipValue << usnameValue << passwdValue << isRember;
file.close();
以二进制QDataStream读文件:
QFile file("conf.dat");
if (!file.open(QIODevice::ReadOnly))
{
return;
}
QDataStream in(&file);
in >> sIP >> sUsr >> sPwd >> isRember;
以文本格式只要把QDataStream改为QTextStream即可
以json格式写入
QJsonObject getJson(const QString str){
QJsonObject json;
QJsonDocument jsonDoc = QJsonDocument::fromJson(str.toLocal8Bit().data());
if (!jsonDoc.isNull()){
json = jsonDocument.object();
}
return json;
}
QString getString(const QJsonObject& json){
return QString(QJsonDocument(json).toJson());
}