如果我想从文件中获取二进制值,无论它们具有哪种格式,我该怎么做? 我已经尝试过这段代码,但它只能逐行读取文本文件,仅此而已。
QFile file(QFileDialog::getOpenFileName (this, tr("Open File"),
"",tr("")));
if (!file.open(QIODevice::ReadOnly ))
return ;
int size = file.size();
qDebug()<<size;
while (!file.atEnd()) {
QByteArray line = file.readLine();
qDebug()<<line;
答案 0 :(得分:2)
分配缓冲区以读取数据并使用QFile :: read函数。例如:
qint64 bufSize = 1024;
char *buf = new char[bufSize];
qint64 dataSize;
while (!file.atEnd()) {
dataSize = file.read(buf, bufSize);
/* process data */
}
答案 1 :(得分:0)
您不仅可以读取char数组,还可以读取其他类型。例如,从文件中读取结构:
struct Foo
{
int bar;
long foobar;
}
//...
Foo foo1;
file.read(foo1, sizeof(Foo));