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同字节数替换,但是如果前后字节数不同,还是需要用复制文件。
浙公网安备 33010602011771号