1.创建一个控制台应用:
打开工程main.cpp,并添加下面代码,然后执行
//取应用程序所在路径
QString exePath = a.applicationDirPath();
qDebug()<<"Qt File Demo:" <<exePath;
QFile txtFile(exePath+"/demo.txt");//关联文件
//打开文本文件
if(!txtFile.open(QFile::ReadOnly)){
qDebug()<<QStringLiteral( "打开文本文件失败");
}else{
char buf[1024]={0};
//读取文件并返回长度
qint64 _readSize = txtFile.read(buf,sizeof(buf));
//字符串结尾
buf[_readSize]='\0';
qDebug()<<QStringLiteral("读取到的内容:")<<buf;
//关闭文件
txtFile.close();
}
//向文件中写入内容,不可同时操作同一个文件
QFile txtFile2(exePath+"/demo2.txt");
if(!txtFile2.open(QIODevice::WriteOnly|QIODevice::NewOnly)){
qDebug()<<QStringLiteral( "wwwwwww打开文本文件失败");
}else{
txtFile2.write(QStringLiteral("新写入的内容").toStdString().c_str());
txtFile2.close();//关闭文件
}
//打开二进制文件并读取
QFile imgFile(exePath+"/bg.jpg");
if(!imgFile.open(QIODevice::ReadOnly)){
qDebug()<<QStringLiteral( "打开二进制文件失败");
}else{
QByteArray bytes = imgFile.readAll();//读取二进制数据
imgFile.close();//关闭文件
qDebug()<<bytes.count();
for(int i=0;i<50;i++){
qDebug()<<bytes[i];
}
}
//写二进制文件
QByteArray ba("fsdjfldslfjdslfjksdflsd");
QFile bin( exePath+"/test.bin");
//打开二进制文件
if(!bin.open(QIODevice::WriteOnly)){
qDebug()<<"open bin file fail";
}else{
bin.write(ba);//写入二进制内容
bin.close();//关闭文件
//如果文件存在
if(bin.exists()){
qDebug()<<" bin file write ok";
qDebug()<<"size:"<<bin.size();//文件大小
bin.rename(exePath+"/test.old");//重命名
bin.copy(exePath+"/test.copy");//复制
bin.remove(exePath+"/test.old");//删除
bin.remove();//删除
}
}
输出:
关联文件:
//取应用程序所在路径
QString exePath = a.applicationDirPath();
QFile txtFile(exePath+"/demo.txt");//关联文件
打开文本文件:
txtFile.open(QFile::ReadOnly
打开二进制文件:
imgFile.open(QIODevice::ReadOnly)
读取文本文件:
qint64 _readSize = txtFile.read(buf,sizeof(buf));
读取二进制文件:
QByteArray bytes = imgFile.readAll();
写文本文件:
txtFile2.write(QStringLiteral("新写入的内容").toStdString().c_str());
写二进制文件:
QByteArray ba("fsdjfldslfjdslfjksdflsd");
bin.write(ba);//写入二进制内容
bin.close();//关闭文件