QDataStream クラスはバイナリデータを QIODevice クラスで扱える形に変換します。
データストリームはシステム、CPU、バイトオーダーに依存しない情報にエンコードされたバイナリストリームです。
コンストラクタ
QDataStream::QDataStream()
IOデバイスが設定されていないデータストリームを生成します。
QDataStream::QDataStream(QIODevice * d)
指定したIOデバイスを使用するデータストリームを生成します。
QDataStream::QDataStream(QByteArray * a, QIODevice::OpenMode mode)
指定したバイト配列を扱う(読み込み/書き込み)データストリームを生成します。
パラメータ
キー |
値 |
説明 |
QIODevice::NotOpen |
0x0000 |
デバイスは開かれません。 |
QIODevice::ReadOnly |
0x0001 |
デバイスを読み込みをするために開きます。Truncate モードであることを意味します。 |
QIODevice::WriteOnly |
0x0002 |
デバイスを書き込みをするために開きます。 |
QIODevice::ReadWrite |
ReadOnly|WriteOnly |
デバイスは読み込み及び書き込みするために開きます。 |
QIODevice::Append |
0x0004 |
デバイスを追記モードで開きます。書き込むデータは末尾に追記されます。 |
QIODevice::Truncate |
0x0008 |
可能であれば開いたときよりデバイスは短縮されます。以前のデータはすべて失われます。 |
QIODevice::Text |
0x0008 |
読み込む際、行の終端文字は\nに変換されます。書き込む際は行末の終端文字は環境によって変わります。Windows環境では\r\nです。 |
|QIODevice::Unbuffered|0x0020|デバイスのいかなるバッファーも無視します。
QDataStream::QDataStream(const QByteArray & a)
指定したバイト配列を扱う(読み込み)データストリームを生成します。
デストラクタ
QDataStream::~QDataStream()
読み書き
bool QDataStream::atEnd() const
IOデバイスが終端位置(ストリームやファイルの終端)に到達した場合か、またはIOデバイスが設定されていない場合はtrue、そうでない場合はfalseを返します。
ByteOrder QDataStream::byteOrder() const
現在のバイトオーダーを返します。
キー |
値 |
説明 |
QDataStream::BigEndian |
QSysInfo::BigEndian |
ビッグエンディアン (デフォルト) |
QDataStream::LittleEndian |
QSysInfo::LittleEndian |
リトルエンディアン |
void QDataStream::setByteOrder(ByteOrder bo)
シリアル化する際のバイトオーダーを設定します。
QIODevice * QDataStream::device() const
このオブジェクトに設定されているデバイスを返します。
デバイスが設定されていない場合は0を返します。
void QDataStream::setDevice(QIODevice * d)
このオブジェクトにデバイスを設定します。
デバイスを設定しない場合は0を設定します。
FloatingPointPrecision QDataStream::floatingPointPrecision() const
データストリームの浮動小数点の精度を返します。
QDataStream::SinglePrecision|0|データストリームのすべての浮動小数は32bit精度を持ちます。 |
QDataStream::DoublePrecision|1|データストリームのすべての浮動小数は64bit精度を持ちます。 |
void QDataStream::setFloatingPointPrecision(FloatingPointPrecision precision)
このデータストリームの浮動小数点の精度を設定します。
QDataStream & QDataStream::readBytes(char *& s, uint & l)
データストリームから指定した長さをバッファーへ読み込み、データストリームへの参照を返します。
パラメータ
int QDataStream::readRawData(char * s, int len)
データストリームから最大で指定したバイト数分をバッファーへ読み込み、読み込んだバイト数を返します。
エラーが発生した場合は0を返します。
パラメータ
- s 読み込んだデータを格納する変数。予めメモリを確保しておく必要があります。
- l 読み込む最大のバイト数
int QDataStream::version() const
このデータストリームのバージョンを返します。
バージョン |
値 |
Qt 5.2 |
15 |
Qt 5.1 |
14 |
Qt 5.0 |
13 |
Qt 4.6 |
12 |
Qt 4.5 |
11 |
Qt 4.4 |
10 |
Qt 4.3 |
9 |
Qt 4.2 |
8 |
Qt 4.0, 4.1 |
7 |
Qt 3.3 |
6 |
Qt 3.1, 3.2 |
5 |
Qt 3.0 |
4 |
Qt 2.1, 2.2, 2.3 |
3 |
Qt 2.0 |
2 |
Qt 1.x |
1 |
void QDataStream::setVersion(int v)
このデータストリームのバージョンを設定します。
Status QDataStream::status() const
データストリームの状態を返します。
キー |
値 |
説明 |
QDataStream::Ok |
0 |
データストリームの操作は正常です。 |
QDataStream::ReadPastEnd |
1 |
データストリームは終端を越えてデータを読み込みました。 |
QDataStream::ReadCorruptData |
2 |
データストリームは破損のしたデータを読み込みました。 |
QDataStream::WriteFailed |
3 |
データストリームは設定されているデバイスへ書き込むことができません。 |
void QDataStream::resetStatus()
データストリームの状態を初期化します。
void QDataStream::setStatus(Status status)
データストリームの状態を設定します。
一度呼んだら、resetStatus() を呼ぶまでこの関数をまた呼んでも無視されます。
int QDataStream::skipRawData(int len)
デバイスから指定したバイト分スキップし、実際にスキップしたバイト数を返します。
失敗した場合は-1を返します。
これは readRawData() で指定したバイト読み込み、読み込んだバッファーを無視した場合と同じです。
QDataStream & QDataStream::writeBytes(const char * s, uint len)
バッファーから指定した長さ分をデータストリームに書き込みます。
int QDataStream::writeRawData(const char * s, int len)
バッファーから指定したバイト数をデータストリームに書き込み、実際に書き込んだバイト数を返します。
失敗した場合は-1を返します。
QDataStream で読み込める型
- qint8
- quint8
- qint16
- quint16
- qint32
- quint32
- qint64
- quint64
- float
- double
- char *& s
- bool
QDataStream で書き込める型
- qint8
- quint8
- qint16
- quint16
- qint32
- quint32
- qint64
- quint64
- float
- double
- const char *
- bool
最終更新:2014年08月25日 21:22