QT对文件进行读写等几个操作
目录
1.添加头文件
#include <QStringList>
#include <QFile>
#include <QFileInfo>
2.添加.h文件代码
public:
int read_configure_cout(QString configpath,QString filename);//读取文件行数
QString read_file(QString configpath,QString filename,int linecout); //读取文本
void writefile(QString configpath,QString filename,QString data); //写文本操作
QString read_configstr(QString configpath,QString filename,int linecout); //读某行文本
QStringList read_configstr3(QString configpath, QString filename, int linecout);//读某行分割文本
3.添加.cpp文件代码
读取文件行数
int testitems::read_configure_cout(QString configpath, QString filename)
{
QString path=configpath+filename;
QFile file( path);
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
// qDebug() << "Can't open the file!" << endl;
return 0;
}
int i=0;
// str.clear();
while(!file.atEnd()){
QByteArray line = file.readLine();
str3=(QString)line;
i++;
}
file.close();
return i;
}
读取文本,循环读取
QString testitems::read_file(QString configpath, QString filename, int linecout)
{
QString path=configpath+filename;
QString str2;
QFile file( path);
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
return "configstr.open error";
}
int i=1;
while(!file.atEnd()){
QByteArray line = file.readLine();
str2=(QString)line;
if(i==linecout){
return str2;
break;
}
i++;
}
file.close();
}
写文件操作
void testitems::writefile(QString configpath, QString filename,QString data)
{
QString filepath=configpath+filename;
if(filepath.isEmpty()==false){
QFile file;
file.setFileName(filepath);
bool b= file.open(QIODevice::WriteOnly | QIODevice::Text);
if(b==true){
// QString str="yes";
file.write(data.toStdString().data());
}else{
QString str="no";
file.write(str.toStdString().data());
}
file.close();
}
}
读某行文本
QString read_configstr(QString configpath,QString filename,int linecout){
QString path=configpath+filename;
QString str2;
QFile file( path);
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
return "configstr.open error";
}
int i=1;
while(!file.atEnd()){
QByteArray line = file.readLine();
str2=(QString)line;
if(i==linecout){
return str2;
break;
}
i++;
}
file.close();
}
读取某行分割文本
//读取某行分割文本
QStringList testitems::read_configstr3(QString configpath, QString filename, int linecout)
{
QString path=configpath+filename;
QString str2;
QFile file( path);
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){
// return "configstr.open error";
}
int i=1;
QStringList list;
while(!file.atEnd()){
QByteArray line = file.readLine();
str=(QString)line;
list=str.split(":"); //分割字符为:
if(i==linecout){
return list;
break;
}
i++;
}