qt - 如何将任何类型的文件读取为二进制值?

标签 qt

如果我想从文件中获取二进制值,无论它们具有哪种格式,我该怎么做? 我已经尝试过这段代码,但它只能逐行读取文本文件,仅此而已。

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;

最佳答案

分配一个缓冲区来读取数据并使用QFile::read函数。例如:

qint64 bufSize = 1024;
char *buf = new char[bufSize];
qint64 dataSize;
while (!file.atEnd()) {
    dataSize = file.read(buf, bufSize);
    /* process data */
}

关于qt - 如何将任何类型的文件读取为二进制值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11930612/

相关文章:

c++ - 没有 QAction 的匹配信号,没有 "go to slot"菜单项

c++ - 在布局上调整 QGraphicsView 小部件的大小

c++ - 在 Qt 组合框中设置项目

python - Phonon 使 python 可执行文件崩溃

c++ - Qt 中未捕获异常

qt - 如何设置精度和对齐方式以在 QTableView 中显示数值

c++ - Qt永久删除文件

c++ - QT的opengl问题

c++ - 将绑定(bind)到 FBO 的纹理复制到另一个 OpenGL 上下文

c++ - 是否可以创建和使用 MatIterator 数组?