0
点赞
收藏
分享

微信扫一扫

QFile文件处理

一叶轻舟okok 2022-04-05 阅读 62
qt

QFile文件处理

  • QFile类用于文件操作,它提供了读写文件的接口,可以读写文件、二进制文件和Qt资源文件。
  • 处理文本文件和二进制文件,可以使用QTextStream类和QDataStream类。处理临时文件可以使用QTemporaryFile,获取信息可以使用QFileInfo,处理目录可以使用QDir,监视文件和目录变化可以使用QFileSystemWatcher.

QTextStream的流操作符
在这里插入图片描述

QFile QTextStream操作文件示例:
新建控制台引用程序,编辑main函数,main.cpp添加头文件:

 
文件读取

//文件读取
    QFile file("hello.txt");
    if(file.open(QIODevice::ReadOnly)){
        char buffer[100];

        qint32 n;
        n = file.readLine(buffer, sizeof(buffer));//返回-1表示失败
        if(n != -1){    //成功
            qDebug() << "长度:" << n << " 内容:" << buffer;	//读取文件
        }
        file.close();
    }else{
        qDebug() << file.errorString();
    }

 

文件写入

   QFile dataFile;
   dataFile.setFileName("data.txt");
   if(dataFile.open(QFile::WriteOnly|QFile::Truncate)){
       QTextStream out(&dataFile);						//文件操作流
       out.setRealNumberPrecision(3);                  //设置输出精度位数为3
       out.setFieldWidth(10);                          //设置输出字段宽度为10
       out.setFieldAlignment(QTextStream::AlignLeft);  //设置左对齐

	//普通方式写入
	double dPI = 3.1415926;
       out << QString("数据: ")
           << dPI ;      //写入数据

	//二进制方式写入
	int age = 18;
	out << QString("年龄: ")
           << bin      //二进制方式
           << age;     //写入数据

	//十六进制方式写入
	out << QString("年龄: ")
           << hex      //十六进制方式
           << showbase //设置显示十六进制(0x))
           << age;     //写入数据	

       file.close();
   }

 
 
二进制读写操作

//写入二进制文件
    QFile binFile("info.bat");
    if(binFile.open(QFile::WriteOnly | QFile::Truncate)){
        QDataStream out(&binFile);
        out << QString("张三")
            << QDate::fromString("2004-02-02", "yyyy-MM-dd")
            << qint32(18);
        binFile.close();
    }else{
        qDebug() << binFile.errorString();
    }

    //读取二进制文件
    if(binFile.open(QFile::ReadOnly)) {	//只读方式打开
        QDataStream in(&binFile);		//操作文件流
        QString name;
        QDate   birthday;
        qint32  age;

        in >> name >> birthday >> age;
        qDebug() << "姓名:" << name << " 出生日期:"<< birthday << " 年龄:" << age;
        binFile.close();
    }else{
        qDebug() << binFile.errorString();
    }

举报

相关推荐

0 条评论