中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Qt中文本流和數據流、緩沖操作和數據操作的示例分析

發布時間:2021-11-25 09:26:40 來源:億速云 閱讀:175 作者:小新 欄目:編程語言

小編給大家分享一下Qt中文本流和數據流、緩沖操作和數據操作的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一.文本流和數據流

A.Qt中講文件類型分為2大類
1.文本文件--文件內容是可讀的文本字符
2.數據文件--文件內容是直接的二進制數據
QFile直接支持文本文件和數據文件的讀寫
Qt中文本流和數據流、緩沖操作和數據操作的示例分析
B.Qt提供了輔助類簡化了文本文件/數據文件的讀寫
1.QTextStream--寫入的數據全部轉換為可讀文本
2.QDataStream--寫入的數據根據類型轉換為二進制數據
IO設備輔助類的使用方式
Qt中文本流和數據流、緩沖操作和數據操作的示例分析
不同的Qt版本的數據流文件格式可能不同
void setVersion(int v)//設置的版本號
int version()const//獲取讀寫版本號

代碼示例

#include <QCoreApplication>
#include <QFile>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QFile file("C:/Users/59673/Desktop/test.hex");

    if( file.open(QIODevice::WriteOnly) )
    {
        QString dt = "mylovedandanxiaohai";
        double value = 3.14;

        file.write(dt.toStdString().c_str());
        file.write(reinterpret_cast<char*>(&value), sizeof(value));

        file.close();
    }

    if( file.open(QIODevice::ReadOnly) )
    {
        QString dt = "";
        double value = 0;

        dt = QString(file.read(19));
        file.read(reinterpret_cast<char*>(&value), sizeof(value));

        file.close();

        qDebug() << dt;
        qDebug() << value;
    }

    return a.exec();
}

運行結果
Qt中文本流和數據流、緩沖操作和數據操作的示例分析

二.緩沖區操作與目錄操作

A.Qt中緩沖區的概念
1.緩沖區的本質為一段連續的存儲空間
2.QBuffer是Qt中緩沖區相關的類
3.在Qt中可以將緩沖區看作一種特殊的IO設備
4.文件流輔助類可以直接用于操作緩沖區
QBuffer緩沖區的使用方式Qt中文本流和數據流、緩沖操作和數據操作的示例分析
代碼示例

#include <QtCore/QCoreApplication>
#include <QBuffer>
#include <QByteArray>
#include <QDataStream>
#include <QDebug>

void write_buffer(int type, QBuffer& buffer)
{
    if( buffer.open(QIODevice::WriteOnly) )
    {
        QDataStream out(&buffer);

        out << type;

        if( type == 0 )
        {
            out << QString("mylove");
            out << QString("3.1415");
        }
        else if( type == 1 )
        {
            out << 3;
            out << 1415;
        }
        else if( type == 2 )
        {
            out << 3.1415;
        }

        buffer.close();
    }
}

void read_buffer(QBuffer& buffer)
{
    if( buffer.open(QIODevice::ReadOnly) )
    {
        int type = -1;
        QDataStream in(&buffer);

        in >> type;

        if( type == 0 )
        {
            QString dt = "";
            QString pi = "";

            in >> dt;
            in >> pi;

            qDebug() << dt;
            qDebug() << pi;
        }
        else if( type == 1 )
        {
            int a = 0;
            int b = 0;

            in >> a;
            in >> b;

            qDebug() << a;
            qDebug() << b;
        }
        else if( type == 2 )
        {
            double pi = 0;

            in >> pi;

            qDebug() << pi;
        }

        buffer.close();
    }
}

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QByteArray array;
    QBuffer buffer(&array);

    write_buffer(0, buffer);
    read_buffer(buffer);

    return a.exec();
}

運行結果
Qt中文本流和數據流、緩沖操作和數據操作的示例分析
B.QBuffer緩沖區的使用場合
1.在線程間進行不同類型的數據傳遞
2.緩存外部設備中的數據返回
3.數據讀取速度小于數據寫入速度
C.QDir是Qt中功能強大的目錄操作類
1.Qt中的目錄分隔符統一使用'/'
2.QDir能夠對目錄進行任意的操作--創建、刪除、重命名
3.QDir能夠獲取指定目錄中的所有條目--文件和文件夾
4.QDir能夠使用過濾字符串獲取指定條目
5.QDir能夠獲取系統中的所有根目錄
目錄操作基礎示例
Qt中文本流和數據流、緩沖操作和數據操作的示例分析

C.QFileSystemWatcher用于監控文件和目錄的狀態變化
1.能夠監控特定目錄和文件的狀態
2.能夠同時對多個目錄和文件進行監控
3.當目錄或者文件發生改變時將觸發信號
4.可以通過信號與槽的機制捕捉信號并作出響應Qt中文本流和數據流、緩沖操作和數據操作的示例分析

以上是“Qt中文本流和數據流、緩沖操作和數據操作的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

qt
AI

谢通门县| 鄢陵县| 墨玉县| 望奎县| 威远县| 文化| 兰溪市| 化德县| 理塘县| 炎陵县| 定西市| 邵阳市| 伊春市| 长白| 防城港市| 尉氏县| 门源| 临江市| 鞍山市| 买车| 东平县| 景东| 莒南县| 仙桃市| 南宫市| 平原县| 神农架林区| 苏尼特左旗| 蒙阴县| 招远市| 沂南县| 石门县| 浦城县| 封丘县| 虎林市| 土默特左旗| 黎城县| 白朗县| 渑池县| 荃湾区| 昭平县|