Qt QDataStream 讀寫文件


項目目錄:

widget.h:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

    //定義一個寫函數
    void writeData();

    //定義一個讀函數
    void readData();

private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

 

widget.cpp:

#include "widget.h"
#include "ui_widget.h"

#include <QDataStream>
#include <QFile>
#include <QDebug>
#include<QTextStream>//讀寫的時候可以指定編碼
#define cout qDebug()<<"["<<__FILE__<<":"<<__LINE__<<"]"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    writeData();
    readData();
}

Widget::~Widget()
{
    delete ui;
}
void Widget::writeData()
{
    //創建對象
    QFile file ("../test.txt");

    //打開文件,只寫方式打開
    bool isOk = file.open(QIODevice::WriteOnly);
    if (isOk == true )
    {
        //創建數據流,和file文件關聯
        //往數據流中寫數據,相當於往文件里寫數據
        QDataStream stream(&file);

        stream<<QString ("主要看氣質")<<250;
        file.close();

    }

}
void Widget::readData()
{
    //創建對象
    QFile file ("../test.txt");

    //打開文件,只讀方式打開
    bool isOk = file.open(QIODevice::ReadOnly);
    if (isOk == true )
    {
        //創建數據流,和file文件關聯
        //往數據流中讀數據,相當於往文件里讀數據
        QDataStream stream(&file);

        //讀的時候,按照寫的順序取數據
        QString str;
        int a;

        stream>>str>>a;

        //打印,如果沒有出現想要的結果,試試下面那一句
//        qDebug()<<str<<a;
//        qDebug()<<str.toUtf8().data()<<a;
        cout<<str.toUtf8().data()<<a;
        file.close();

    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM