欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > qt 读写文本、xml文件

qt 读写文本、xml文件

2024/11/30 8:39:58 来源:https://blog.csdn.net/wyyy2088511/article/details/144053893  浏览:    关键词:qt 读写文本、xml文件

写txt文件

    QString fileName = ui->lineEdit->text();
    QString fileContent = ui->textEdit->toPlainText();

    qDebug()<<"test:"<<fileContent;
    QFile file(fileName);
    if(!file.open(QFile::WriteOnly|QFile::Text))
    {
        qDebug()<<fileName<<"打开失败!"<<endl;
        return;
    }
    QTextStream stream(&file);

    stream<<fileContent;
    file.close();

读txt 文件

    QString fileName = ui->lineEdit->text();
    QFile file(fileName);
    if(!file.open(QFile::ReadOnly))
    {
        qDebug()<<fileName<<"打开失败!"<<endl;
        return;
    }
    QTextStream stream(&file);
    QString str = stream.readAll();
    file.close();

    ui->textEdit->setText(str);

写xml文件

 QString fileName = ui->lineEdit->text();
    if(fileName.isNull()||fileName.isEmpty())
    {
        QMessageBox::information(this,"提示","没有文件名");
        return;
    }

    QFile file(fileName);
    if(!file.open(QFile::Text|QFile::WriteOnly|QFile::Truncate))
    {
        qDebug()<<"文件打开失败!"<<endl;
        return;
    }

     //写XML文件
    QXmlStreamWriter writer(&file);
    writer.setCodec("utf-8");
    writer.setAutoFormatting(true);
    writer.writeStartDocument();
    writer.writeStartElement("person");
    writer.writeStartElement("student");
    QXmlStreamAttributes attribute;
    attribute.append("class","class_one");
    writer.writeAttributes(attribute);
    writer.writeTextElement("name","xiaoli");
    writer.writeTextElement("age","10");
    writer.writeEndElement();
    writer.writeEndElement();
    file.close();

读xml 文件

 QFile file1(fileName);
    if(!file1.open(QFile::ReadOnly))
    {
        qDebug()<<"打开文件失败:"<<fileName<<endl;
    }

    //解析xml文件并写到label控件中
    ui->label_3->setText("");//读文件前先清空显示控件
    QXmlStreamReader reader(&file1);
    while(!reader.atEnd())
    {
        if(reader.isStartElement())
        {
            if(reader.isComment())
                qDebug() << "comment";
            else if(reader.name()=="name")
            {
                QString str = ui->label_3->text();
                str = str+" "+reader.readElementText();
                ui->label_3->setText(str);
            }
            else if(reader.name()=="age")
            {
                QString str = ui->label_3->text();
                str = str+" "+reader.readElementText();
                ui->label_3->setText(str);
            }

        }
        reader.readNext();
    }

    file1.close();

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com