龙空技术网

Qt开发-文件的读写操作

QT教程 293

前言:

而今姐妹们对“java读写文本文件的基本步骤有哪些”可能比较着重,你们都想要知道一些“java读写文本文件的基本步骤有哪些”的相关文章。那么小编也在网上收集了一些有关“java读写文本文件的基本步骤有哪些””的相关内容,希望咱们能喜欢,兄弟们一起来了解一下吧!

引言

文件的读写是很多应用程序具有的功能,甚至某些应用程序就是围绕着某一种格式文件的处理而开发的,所以文件读写是应用程序开发的一个基本功能。

Qt 提供了两种读写纯文本文件的基本方法:

QFile 类的 IODevice 读写功能直接进行读写利用 QFile QTextStream 结合起来,用流(Stream)的方法进行文件读写。一、文件读操作

(1)使用QFile类

Qt封装了QFile类,方便我们对文件进行操作,可以按照如下的步骤进行:

使用QFile加载文件对象打开文件 file.open(打开方式)操作文件关闭文件 file.close()

实例:点击读写文件按钮,读取文件内容到textEdit中

1️⃣设置ui界面

2️⃣在widget.cpp中编辑代码(QFileDialog类是打开文件)

   //点击选取文件按钮,弹出文件对话框    connect(ui->pushButton,&QPushButton::clicked,[=](){    QString path=  QFileDialog::getOpenFileName(this,"打开文件","C:/Users/WFD/Desktop");   //将路径显示在lineEdit中   ui->lineEdit->setText(path);      //读取文件内容,放入textEdit中      QFile file(path);//参数就是文件的路径      //设置打开方式      file.open(QIODevice::ReadOnly);      //用QByteArray类去接收读取的信息      QByteArray array=file.readAll();      //将读取到的数据放入textEdit中      ui->textEdit->setText(array);      //关闭文件对象      file.close();

注意:在设置打开方式的时候

QFile::open() 函数打开文件时需要传递 QIODevice::OpenModeFlag 枚举类型的参数,决定文件以什么方式打开,QIODevice::OpenModeFlag 类型的主要取值如下:

QIODevice::ReadOnly  //以只读方式打开文件,用于载入文件。QIODevice::WriteOnly  //以只写方式打开文件,用于保存文件。QIODevice::ReadWrite //以读写方式打开。QIODevice::Append  //以添加模式打开,新写入文件的数据添加到文件尾部。QIODevice::Truncate //以截取方式打开文件,文件原有的内容全部被删除。QIODevice::Text       //以文本方式打开文件,读取时“\n”被自动翻译为换行符,写入时字符串结束符会自动翻译为系统平台的编码,如 Windows 平台下是“\r\n”。这些取值可以组合,例如 QIODevice::ReadOnly | QIODevice::Text 表示以只读和文本方式打开文件。

注意:在操作文件时

用只读方式打开一个文本文件,然后用readAll()方法将文件内容一次全部读取出来,返回值是字节数组QByteArray。QByteArray用来存放二进制数据,如果想要看文字内容需要转换成QString。(有时候系统会自动转换)

我们也可以使用readLine方法一次读取一行,然后每次对一行文字进行操作:(用file.atEnd判断是否读到最后一行)

       QByteArray array;      while(!file.atEnd())      {           array+=file.readLine();//+=叠加读过的行      }

(2)使用QTextStream类

如果操作的是文本文件,Qt还专门封装了一个处理文本流的类,我们可以用它来读取文本内容

    //点击选取文件按钮,弹出文件对话框    connect(ui->pushButton,&QPushButton::clicked,[=](){      QString path=  QFileDialog::getOpenFileName(this,"打开文件","C:/Users/WFD/Desktop");      //将路径放在lineEdit中      ui->lineEdit->setText(path);      //读取文件内容,放入textEdit中      QFile file(path);//参数就是文件的路径      //设置打开方式      file.open(QIODevice::ReadOnly);      //用QTextStream类去读取文本信息     QTextStream QS(&file);     //用QString类去接收读取的信息     QString array=QS.readAll();      //将读取到的数据放入textEdit中      ui->textEdit->setText(array);      //关闭文件对象      file.close();
二,文件写操作

(1)使用QFile类

使用QFile同样可以对文件进行写操作:

(2)使用QTextStream类

QTextStream类对操作符进行了重载,我们可以通过 << 操作符将字符串流入文本文件:

三,文件信息读取

除了对文件的读写操作,Qt还封装了QFileInfo类帮助我们获取文件的元数据,比如文件大小、后缀名、创建时间、最后修改时间等等:

拓展:

各编码转换

QString -> QByteArray      QString.toUtf8();QByteArray -> std::string  QByteArray.toStdString();std::string -> char *        string.date();
常用静态函数
QFileDialog::getOpenFileName()    //获取指定文件路径名返回QStringQFileDialog::getExistingDirectory()  //获取指定路径返回QStringQFileDialog::getSaveFileName()    //获取指定保存路径名返回QString

QT配置ini文件的建立,读取,写入操作

1 ini文件介绍

.ini 文件是Initialization File的缩写,即初始化文件。

除了windows现在很多其他操作系统下面的应用软件也有.ini文件,用来配置应用软件以实现不同用户的要求。一般不用直接编辑这些.ini文件,应用程序的图形界面即可操作以实现相同的功能。它可以用来存放软件信息,注册表信息等。

2 ini文件格式

INI文件由节、键、值组成。

节  [section] 参数(键=值)name=value

下面是一个ini文件的例子

[Section1 Name]   KeyName1=value1   KeyName2=value2   ...   [Section2 Name]   KeyName21=value21   KeyName22=value22   

其中:[Section1 Name]用来表示一个段落。因为INI文件可能是项目中共用的,所以使用[Section Name]段名来区分不同用途的参数区。例如:[Section1 Name]表示传感器灵敏度参数区;[Section2 Name]表示测量通道参数区等等。

点击领取Qt学习资料+视频教程~「链接」

注解:使用分号表示(;)。在分号后面的文字,直到该行结尾都全部为注解。

3 Qt写ini文件

#include <QApplication>#include <QSettings>int main(int argc, char *argv[]){    QApplication a(argc, argv);    //Qt中使用QSettings类读写ini文件    //QSettings构造函数的第一个参数是ini文件的路径,第二个参数表示针对ini文件,第三个参数可以缺省    QSettings *configIniWrite = new QSettings("hahaya.ini", QSettings::IniFormat);    //向ini文件中写入内容,setValue函数的两个参数是键值对    //向ini文件的第一个节写入内容,ip节下的第一个参数    configIniWrite->setValue("/ip/first", "192.168.0.1");    //向ini文件的第一个节写入内容,ip节下的第二个参数    configIniWrite->setValue("ip/second", "127.0.0.1");    //向ini文件的第二个节写入内容,port节下的第一个参数    configIniWrite->setValue("port/open", "2222");    //写入完成后删除指针    delete configIniWrite;    return a.exec();}

运行程序后,打开程序目录下的hahaya.ini文件,结果如下图所示:

4 Qt读ini文件

#include <QApplication>#include <QSettings>#include<QDebug>int main(int argc, char *argv[]){      QApplication a(argc, argv);      QSettings *configIniRead = new QSettings("hahaya.ini", QSettings::IniFormat);      //将读取到的ini文件保存在QString中,先取值,然后通过toString()函数转换成QString类型      QString ipResult = configIniRead->value("/ip/second").toString();      QString portResult = configIniRead->value("/port/open").toString();      //打印得到的结果      qDebug() << ipResult;      qDebug() << portResult;      //读入入完成后删除指针      delete configIniRead;      return a.exec();}

标签: #java读写文本文件的基本步骤有哪些 #java读写文本文件的基本步骤有哪些内容和方法