I.テキストフローとデータフロー
A.Qt圏の二つのカテゴリーにタイプのファイル
1. テキストファイル -ファイルの内容を読み取り可能なテキスト文字である
2. データファイル -ファイルの内容は、直接バイナリデータが
直接読み込むとデータファイルとテキストファイルの読み書きをサポートしていqfileにより
B.Qtヘルパークラスは、読み取りおよび書き込みテキストファイル/データファイルを簡単にするために設けられている
読み取り可能なテキストに1.QTextStream--すべてのデータを書き込ま
の種類に応じて2値データに2.QDataStream--書き込みデータを
IOデバイス補助クラス利用
のQtストリームファイル形式の異なるバージョンが異なる場合があり
、ボイドsetVersion(int v)short型に設定//バージョン番号の
int型のバージョン()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();
}
業績
II。バッファ操作とディレクトリの操作
でA.Qtバッファ概念
性質1.バッファは、連続した記憶空間である
2.QBuffer Qtはバッファのクラスを関連する
特別なIO装置とみなすことができるQtのバッファ3.
4。クラスファイルストリームを直接補助バッファ動作させるために使用することができる
QBufferのバッファ使用
コードサンプルを
#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();
}
業績
B.QBufferバッファ使用シナリオ
内のスレッド間のデータ転送の1異なるタイプの
データバッファ2外部装置戻る
3.データがデータ書き込み速度よりも速度以下読み取る
C.QDir強力な機能のQtをディレクトリ操作クラス
1.Qtが統一されたディレクトリの区切り使用中の「/」
名前の変更、削除、作成- 2.QDirは、任意のディレクトリ操作することができ
3.QDirが指定したディレクトリ内のエントリのすべてを取得することができ-ファイルおよびフォルダクリップ
指定されたエントリからフィルタ文字列を使用することが可能4.QDir
5.QDirを取得することができるすべてのルート・ディレクトリ・システムの
ディレクトリの典型的な基本的な動作を
ファイルやディレクトリの状態を監視するためのC.QFileSystemWatcher変更
1は、特定のディレクトリおよびファイルの状態監視することができる
2が同時にファイルやディレクトリの複数監視することができ
、ディレクトリまたはファイルがトリガ信号に変更された場合3.
によって4機構グルーブ信号捕捉信号に応答して