Qt文件写入和读取

1.Qt写入数据到文件

    //writetext
    QFile file("./test.txt");
    file.open( QIODevice::ReadWrite | QIODevice::Append);
    QTextStream out(&file);
    if(!ui->lineEdit->text().isEmpty() && !ui->lineEdit_2->text().isEmpty()){
        out << ui->lineEdit->text();
        out << ":";
        out << ui->lineEdit_2->text();
        out << "\n";
    }
    file.close();

这里写图片描述

2.Qt从文件中读取数据

    QFile file("./test.txt");
    if(!file.open(QIODevice::ReadOnly))
    {
         return;
    }
    QTextStream in(&file);
    while(!in.atEnd()){
        QString onecount = in.readLine();
        QStringList userpwd = onecount.split(':');
        qDebug() << userpwd.at(0) << "--" << userpwd.at(1);
    }
    file.close();

这里写图片描述

3.Qt通过单个json对象形式写入

//头文件
#include<QJsonArray>
#include<QJsonObject>
#include<QJsonDocument>
#include<QByteArray>
#include<QDebug>
#include<QJsonParseError>
//写入
    QFile file("./test.txt");
    file.open( QIODevice::ReadWrite | QIODevice::Append);
    QTextStream out(&file);
    if(!ui->lineEdit->text().isEmpty() && !ui->lineEdit_2->text().isEmpty()){
        QJsonObject json;
        json.insert("name",ui->lineEdit->text());
        json.insert("pwd",ui->lineEdit_2->text());

        QJsonDocument document1;
        document1.setObject(json);
        QByteArray byteArray = document1.toJson(QJsonDocument::Compact);
        QString strJson(byteArray);
        out << strJson;
        out << "\n";
    }

    file.close();
//读取
	QFile file("./test.txt");
    if(!file.open(QIODevice::ReadOnly))
    {
         return;
    }
    QTextStream in(&file);

    while(!in.atEnd()){
        QString onecount = in.readLine();
        QByteArray byteArray = onecount.toLocal8Bit();
        QJsonParseError jsonError;
        QJsonDocument doucment = QJsonDocument::fromJson(byteArray,&jsonError);

        if (!doucment.isNull() && (jsonError.error == QJsonParseError::NoError)){
            if (doucment.isObject()) {
                QJsonObject object = doucment.object();
                if (object.contains("name")) {
                    QJsonValue value = object.value("name");
                    if (value.isString()){
                        QString strName = value.toString();
                        qDebug() << strName;
                    }
                }
                if (object.contains("pwd")) {
                    QJsonValue value = object.value("pwd");
                    if (value.isString()){
                        QString strName = value.toString();
                        qDebug() << strName;
                    }
                }
            }
        }
    }
    file.close();

4.Qt写入json数组

//写入
    QJsonObject json;
    json.insert("name","aaa");
    json.insert("pwd","123");
    QJsonObject json1;
    json1.insert("name","bbb");
    json1.insert("pwd","111");

    QJsonArray arr;
    arr.append(json);
    arr.append(json1);

    QJsonDocument document1;
    document1.setArray(arr);
    QByteArray byteArray = document1.toJson(QJsonDocument::Compact);
    QString strJson(byteArray);
//读取
	QJsonParseError jsonError;
    QJsonDocument doucment = QJsonDocument::fromJson(byteArray,&jsonError);

    if (!doucment.isNull() && (jsonError.error == QJsonParseError::NoError)){
        if(doucment.isArray()){
            QJsonArray temp = doucment.array();
            for(int i=0; i<temp.count(); i++){
                QJsonValue tempvalue = temp.at(i);
                if(tempvalue.isObject()){
                    QJsonObject object = tempvalue.toObject();
                    if (object.contains("name")) {
                        QJsonValue value = object.value("name");
                        if (value.isString()){
                            QString strName = value.toString();
                            qDebug() << strName;
                        }
                    }
                }

            }
        }
    }

5.Qt从文件中读取内容

    QFile file("./textFile.txt");
    if(file.open(QIODevice::ReadOnly))
    {
       char buffer[2048];
       //读取所有内容
       //QByteArray bytearr = file.readAll();
       // qDebug()<<  "all" << bytearr;
       //逐行读取内容
       while(!file.atEnd()){
           qint64 lineLen = file.readLine(buffer,sizeof(buffer));
           qDebug()<< "b1" <<lineLen;
           if(lineLen!=-1)
           {
               qDebug()<< "b1" <<buffer;
           }
       }

    }
    file.close();

这里写图片描述这里写图片描述

6.Qt ini文件写入读取

#include <QSettings>

QSettings *config = new QSettings("./test.ini", QSettings::IniFormat);

void writeToFile(const QString groupName,const QString key,const QString value)
{
    config->beginGroup(groupName);
    config->setValue(key,value);
    config->endGroup();
}

QString readFromFile(const QString groupName,const QString key)
{
    QString filePath = groupName + "/" + key;
    QString objectString = config->value(filePath).toString();

    return objectString;
}

//写入
config->writeToFile("ip","ip","192.168.1.1");
config->writeToFile("next","nexus5","1999");
//读取
QString temp = config->readFromFile("ip","ip");

文件内容:
这里写图片描述

7.Qt将char*数组写入到文件

    //writetext
    QFile file("./test.cpp");
    file.open( QIODevice::WriteOnly);
    file.write((char*)pBuffer, lBufferSize);
    file.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力减肥的小胖子5

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值