1. 常规读写文件
QFile file(/usr/local/test.txt);
file.open(QIODevice::ReadWrite);
int file_size = file.size();
char buf[1024];
// 5种读取方法
file.read(buf, 1024 < file_size ? 1024 : file_size);
QByteArray readBuf = file.read(1024);
file.readLine(buf, 1024);
QByteArray readLineBuf = file.readLine();
QByteArray allBuf = file.readAll();
// 3种写文件方法
file.write(buf, 1024);
file.write(buf);
file.write(QByteArray(buf,1024));
file.flush();
2. 试探性读文件
QT还提供了一种文件读取函数,可以不影响文件偏移量,这用来进行文件格式解析会比较方便
QFile file(/usr/local/test.txt);
file.open(QIODevice::ReadWrite);
int file_size = file.size();
char buf[1024];
// 两种peek方法
file.peek(buf, 1024);
QByteArray ba = file.peek(1024);
3. 流形式读写文件
QTextStream: 文本流
QDataStream: 二进制流
QDataStream提供了一套异步读取方法,可以适用于网络数据读取
in.startTransaction();
QString str;
qint32 a;
in >> str >> a; // try to read packet atomically
if (!in.commitTransaction())
return; // wait for more data