c++ - QFile:如何有效地只读取从 k 到 k+L 的字节

标签 c++ qt bytearray qfile qbytearray

我可以从 QFile 中读取从 k 到 k+L 的字节,将第一个整个文件读入 QByteArray

if (!file.open(QIODevice::ReadOnly))
    //...
    QByteArray blob = file.readAll();
    QByteArray bytes = blob.mid( k, L);

如何高效地只读取从 k 到 k+L 的字节?

if (!file.open(QIODevice::ReadOnly))
    //...
    QByteArray bytes = bytesFromFile( file, k, L);

最佳答案

使用 seek 方法到达文件中您要开始阅读的位置。 然后使用 read 方法从该点读取任意数量的字节。

即。

if (!file.open(QIODevice::ReadOnly)){
    file.seek(k);
    QByteArray bytes = file.read(L);
}

关于c++ - QFile:如何有效地只读取从 k 到 k+L 的字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20559195/

相关文章:

java - 使用 UnmanagedExports 和 JNA 将字节数组从 C# 返回到 Java

java - 将 ASCII 字节 [] 转换为字符串

c++ - 根据第三个整数的符号快速加/减两个整数

c++ - 复制堆栈变量时异常的析构函数行为

c++ - is_constexpr 在 C++11 中是否可行?

c++ - 引用放置的 map 值需要类的定义

QT:没有这样的插槽

qt - 如何从 Qt 5.9 中的任何目录渲染 .obj 文件

c++ - 从 ui 文件生成的头文件不可见?

java - 为什么 byteArray 的长度是 22 而不是 20?