QFile 读取文件指定范围的数据 ,文件指定范围同字节数的替换/修改。

QFile file(FILEPATH);//为路径FILEPATH创建QFile对象。
if(file.open(QIODevice::ReadOnly|QIODevice::Text)){
            file.seek(START);//把光标移至文件的第START个字节。
            QByteArray data=file.read(LENGTH);//从START字节开始,读LENGTH字节的数据。
            //处理数据的其他操作
            file.close();//关闭文件
}    

读指定位置操作主要运用seek(qint64)移动光标,和read(qint64)读取指定字节数数据。

 

修改/替换指定位置主要运用---QIODevice::Append---,seek(qint64),write(qint64)实现指定范围,同字节长度的数据替换。

QFile file(FILEPATH);//为路径FILEPATH创建QFile对象。
if(file.open(QIODevice::WriteOnly|QIODevice::Append|QIODevice::Text)){//打开文件,注意是写文件的模式是QIODevice::Append
        file.seek(START);//把光标移至文件的第START个字节。
        file.write(str.toUtf8());//把文件的[START,START+str.length())子串,替换为str。当START+str.length()超过数据长度,也起作用。
        file.close();//关闭文件
    }

用可以实现QIODevice::Append同字节数替换,但是如果前后字节数不同,还是需要用复制文件。

posted @ 2024-07-15 19:02  Seventh_July  阅读(177)  评论(0)    收藏  举报