一.QFile
文件读取 QIODevice::ReadOnly
QString filePath="/home/chenlang/RepUtils/1.txt";
QFile file(filePath);
QDir::currentPath();//获取当前项目文件夹所在路径
-
逐行读取
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
QTextStream in(&file);
while (!in.atEnd()) {
QString line = in.readLine();
qDebug()<<line;
// 处理每一行数据
}
file.close();
}
- 逐行写入(文件不存在即自动创建)
QFile file(filePath);
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {//只写、Text形式
QTextStream out(&file);
for(auto value=route_points.begin();value!=route_points.end();++value)
{
out<<"Hello World!"<<endl;
}
file.close();
}
-
读取全部内容
if(file.open(QIODevice::ReadOnly))
{
QByteArray array = file.readAll();
qDebug()<<array.toStdString().c_str();
file.close();
}
-
使用流式操作符读取
if (file.open(QIODevice::ReadOnly)) {
QTextStream in(&file);
QString content = in.readAll();
qDebug()<<content;
// 处理文件内容
file.close();
}
文件写入
- QIODevice::ReadWrite 以读写打开
- QIODevice::WriteOnly 以只写打开
- QIODevice::Append 以追加的方式打开,新增加的内容将被追加到文件末尾
- QIODevice::Truncate 以重写的方式打开,在写入新的数据时会将原有 数据全部清除,游标设置在文件开头。
- QIODevice::Text 在读取时,将行结束符转换成 \n;在写入时,将行结束符转换成本地格式,例如 Win32 平台上是 \r\n
二.QFileInfo
通常用于文件的各种信息。文章来源:https://www.toymoban.com/news/detail-729555.html
QFileInfo fileInfo(path);//构造函数指定文件名
fileInfo.setFile(path);//通过函数指定文件名
fileInfo.fileName();//返回去除路径的文件名
fileInfo.filePath();//返回包含路径的文件名
fileInfo.baseName();//返回文件基名,即返回第一个'.'之前的文件名
fileInfo.isDir();//判断当前对象是不是一个文件夹
fileInfo.isFile();//判断当前对象是不是一个文件
fileInfo.exists();//判断当前文件是否存在
三.QDir
进行目录操作的类。文章来源地址https://www.toymoban.com/news/detail-729555.html
QDir dir(QDir:currentPath());
QStringList filter;
QFileInfoList fileInfoList=dir.entryInfoList(filter);
int fileCount=0,dirCount=0,allCount=0;
for(auto it:fileInfoList)
{
if(it.isFile())
{
fileCount++;
qDebug()<<"file:"<<it.baseName();
}
if(it.isDir())
{
dirCount++;
qDebug()<<"dir:"<<it.baseName();//算出结果比实际数量多2
}
}
allCount=fileInfoList.count()-2;
qDebug()<<"当前文件夹内文件及文件夹数量:"<<allCount;
qDebug()<"当前文件夹内文件夹数量:"<dirCount;
qDebug()<"当前文件夹内文件数量:"<<fileCount;
到了这里,关于Qt文件 I/O 操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!