QFile读写文本文件示例

读text配置文件示例


	QFile file(strFileName);
	if (!file.open(QFile::ReadOnly | QIODevice::Text)){
		return false;
	}
	//解析配置文件
	QTextStream in(&file);
	QString line = in.readLine();
	while(!(in.atEnd() && line.length() == 0))
	{
		QStringList strList = line.trimmed().split(QRegExp("[ \\t]"));
		RemoveNullString(strList);
		if(strList.count() > 0)
		{
			listCfg.push_back(ConfigItem(strList[0], strList));
		}
		line = in.readLine();
	}
	file.close();

//剔除空字符串
void GetConfigInfor::RemoveNullString(QStringList &strList)
{
	QStringList strList2;
	for(int i = 0; i < strList.count(); ++i)
	{
		if(strList[i].trimmed().length() > 0)
		{
			strList2.push_back(strList[i].trimmed());
		}
	}
	strList = strList2;
}

写text日志示例

void LogFile::WriteLog(const QString &s)
{
	QString sLogFileName = QObject::tr("./") + g_strLogFileName;
	QFile file(sLogFileName);
	if (!file.open(QFile::WriteOnly | QFile::Append | QFile::Text)){
		return;
	}
	QString sLog = QObject::tr("log(%1):").arg(QTime::currentTime().toString("hh:mm:ss.zzz"));
	QTextStream ts(&file);
	ts.reset();
	ts.setCodec("UTF-8");//UTF必须大写才会被正确识别。
	ts << sLog << s << endl;
	file.close();
}

猜你喜欢

转载自blog.csdn.net/weixin_43172531/article/details/103764224