qt 读写文本、xml文件

server/2024/11/27 20:14:35/

写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();


http://www.ppmy.cn/server/145421.html

相关文章

C#基础题总结

16.一张单据上有一个5位数的号码为6**42&#xff0c;其中百位数和千位数已模糊不清&#xff0c;但知道该数能被 57 和 67 除尽。设计一个算法&#xff0c;找出该单据所有可能的号码。 17.编程序求2&#xff5e;10000以内的完全数。一个数的因子&#xff08;除了这个数本身&…

WordCloud去掉停用词(fit_words+generate)的2种用法

-------------词云图集合------------- WordCloud去掉停用词&#xff08;fit_wordsgenerate&#xff09;的2种用法 通过词频来绘制词云图&#xff08;jiebaWordCloud&#xff09; Python教程95&#xff1a;去掉停用词词频统计jieba.tokenize示例用法 将进酒—李白process_t…

241126学习日志——[CSDIY] [ByteDance] 后端训练营 [19]

CSDIY&#xff1a;这是一个非科班学生的努力之路&#xff0c;从今天开始这个系列会长期更新&#xff0c;&#xff08;最好做到日更&#xff09;&#xff0c;我会慢慢把自己目前对CS的努力逐一上传&#xff0c;帮助那些和我一样有着梦想的玩家取得胜利&#xff01;&#xff01;&…

2024年12月计划(ue5太阳系+ue独立游戏+freex+GPU精粹泛读催眠)

根据以往&#xff0c; 如果周一到周四白天 一&#xff0c;UE5太阳系每天一节&#xff0c;原因是尽可能地接手外包的源码&#xff0c;全职去做UE&#xff0c;提高核心竞争力。剩下26节&#xff0c;868分钟。如果按照每天10分钟&#xff0c;显然是不够的。分5周进行&#xff0c;…

AIVA 技术浅析(五):使用的自然语言处理(NLP)技术浅析

虽然 AIVA&#xff08;Artificial Intelligence Virtual Artist&#xff09;主要用于音乐创作&#xff0c;但其核心依赖于深度学习技术&#xff0c;尤其是自然语言处理&#xff08;NLP&#xff09;领域的许多概念和方法。 1. 序列建模&#xff08;Sequence Modeling&#xff09…

【八股文】小米

文章目录 一、vector 和 list 的区别&#xff1f;二、include 双引号和尖括号的区别&#xff1f;三、set 的底层数据结构&#xff1f;四、set 和 multiset 的区别&#xff1f;五、map 和 unordered_map 的区别&#xff1f;六、虚函数和纯虚函数的区别&#xff1f;七、extern C …

java centos 离线使用sherpa-onnx文字转语音TTS

sherpa-onnx: https://github.com/k2-fsa/sherpa-onnx.git 文档链接;Java API — sherpa 1.3 文档 1. 项目基础介绍和主要编程语言 sherpa-onnx 是一个基于下一代 Kaldi 和 onnxruntime 的开源项目,专注于语音识别、文本转语音、说话人识别和语音活动检测(VAD)等功能。该项…

原生Android调用uniapp项目中的方法

最近遇到了这样一个需求&#xff0c;和安卓对接&#xff0c;暴露一个方法给安卓调用&#xff0c;我这边是使用的uniappvue3开发的项目&#xff0c;可以打包成小程序、app&#xff0c;运行在浏览器&#xff0c;H5页面等。大概的思路是&#xff1a;在main.js中封装一个全局的方法…