引言 文件的读写是很多应用程序具有的功能,甚至某些应用程序就是围绕着某一种格式文件的处理而开发的,所以文件读写是应用程序开发的一个基本功能。 Qt提供了两种读写纯文本文件的基本方法:用QFile类的IODevice读写功能直接进行读写利用QFile和QTextStream结合起来,用流(Stream)的方法进行文件读写。一、文件读操作 (1)使用QFile类 Qt封装了QFile类,方便我们对文件进行操作,可以按照如下的步骤进行:使用QFile加载文件对象打开文件file。open(打开方式)操作文件关闭文件file。close() 实例:点击读写文件按钮,读取文件内容到textEdit中 1设置ui界面 2在widget。cpp中编辑代码(QFileDialog类是打开文件)点击选取文件按钮,弹出文件对话框connect(uipushButton,QPushButton::clicked,〔〕(){QStringpathQFileDialog::getOpenFileName(this,打开文件,C:UsersWFDDesktop);将路径显示在lineEdit中uilineEditsetText(path);读取文件内容,放入textEdit中QFilefile(path);参数就是文件的路径设置打开方式file。open(QIODevice::ReadOnly);用QByteArray类去接收读取的信息QByteArrayarrayfile。readAll();将读取到的数据放入textEdit中uitextEditsetText(array);关闭文件对象file。close(); 注意:在设置打开方式的时候 QFile::open()函数打开文件时需要传递QIODevice::OpenModeFlag枚举类型的参数,决定文件以什么方式打开,QIODevice::OpenModeFlag类型的主要取值如下:QIODevice::ReadOnly以只读方式打开文件,用于载入文件。QIODevice::WriteOnly以只写方式打开文件,用于保存文件。QIODevice::ReadWrite以读写方式打开。QIODevice::Append以添加模式打开,新写入文件的数据添加到文件尾部。QIODevice::Truncate以截取方式打开文件,文件原有的内容全部被删除。QIODevice::Text以文本方式打开文件,读取时被自动翻译为换行符,写入时字符串结束符会自动翻译为系统平台的编码,如Windows平台下是r。这些取值可以组合,例如QIODevice::ReadOnlyQIODevice::Text表示以只读和文本方式打开文件。 注意:在操作文件时 用只读方式打开一个文本文件,然后用readAll()方法将文件内容一次全部读取出来,返回值是字节数组QByteArray。QByteArray用来存放二进制数据,如果想要看文字内容需要转换成QString。(有时候系统会自动转换) 我们也可以使用readLine方法一次读取一行,然后每次对一行文字进行操作:(用file。atEnd判断是否读到最后一行)QByteAwhile(!file。atEnd()){arrayfile。readLine();叠加读过的行} (2)使用QTextStream类 如果操作的是文本文件,Qt还专门封装了一个处理文本流的类,我们可以用它来读取文本内容点击选取文件按钮,弹出文件对话框connect(uipushButton,QPushButton::clicked,〔〕(){QStringpathQFileDialog::getOpenFileName(this,打开文件,C:UsersWFDDesktop);将路径放在lineEdit中uilineEditsetText(path);读取文件内容,放入textEdit中QFilefile(path);参数就是文件的路径设置打开方式file。open(QIODevice::ReadOnly);用QTextStream类去读取文本信息QTextStreamQS(file);用QString类去接收读取的信息QStringarrayQS。readAll();将读取到的数据放入textEdit中uitextEditsetText(array);关闭文件对象file。close();二,文件写操作 (1)使用QFile类 使用QFile同样可以对文件进行写操作: (2)使用QTextStream类 QTextStream类对操作符进行了重载,我们可以通过操作符将字符串流入文本文件: 三,文件信息读取 除了对文件的读写操作,Qt还封装了QFileInfo类帮助我们获取文件的元数据,比如文件大小、后缀名、创建时间、最后修改时间等等: 拓展:各编码转换QStringQByteArrayQString。toUtf8();QByteArraystd::stringQByteArray。toStdString();std::stringcharstring。date();常用静态函数QFileDialog::getOpenFileName()获取指定文件路径名返回QStringQFileDialog::getExistingDirectory()获取指定路径返回QStringQFileDialog::getSaveFileName()获取指定保存路径名返回QString QT配置ini文件的建立,读取,写入操作 1ini文件介绍 。ini文件是InitializationFile的缩写,即初始化文件。 除了windows现在很多其他操作系统下面的应用软件也有。ini文件,用来配置应用软件以实现不同用户的要求。一般不用直接编辑这些。ini文件,应用程序的图形界面即可操作以实现相同的功能。它可以用来存放软件信息,注册表信息等。 2ini文件格式 INI文件由节、键、值组成。节〔section〕参数(键值)namevalue 下面是一个ini文件的例子〔Section1Name〕KeyName1value1KeyName2value2。。。〔Section2Name〕KeyName21value21KeyName22value22 其中:〔Section1Name〕用来表示一个段落。因为INI文件可能是项目中共用的,所以使用〔SectionName〕段名来区分不同用途的参数区。例如:〔Section1Name〕表示传感器灵敏度参数区;〔Section2Name〕表示测量通道参数区等等。 点击领取Qt学习资料视频教程链接 注解:使用分号表示(;)。在分号后面的文字,直到该行结尾都全部为注解。 3Qt写ini文件includeQApplicationincludeQSettingsintmain(intargc,charargv〔〕){QApplicationa(argc,argv);Qt中使用QSettings类读写ini文件QSettings构造函数的第一个参数是ini文件的路径,第二个参数表示针对ini文件,第三个参数可以缺省QSettingsconfigIniWritenewQSettings(hahaya。ini,QSettings::IniFormat);向ini文件中写入内容,setValue函数的两个参数是键值对向ini文件的第一个节写入内容,ip节下的第一个参数configIniWritesetValue(ipfirst,192。168。0。1);向ini文件的第一个节写入内容,ip节下的第二个参数configIniWritesetValue(ipsecond,127。0。0。1);向ini文件的第二个节写入内容,port节下的第一个参数configIniWritesetValue(portopen,2222);写入完成后删除指针deleteconfigIniWreturna。exec();} 运行程序后,打开程序目录下的hahaya。ini文件,结果如下图所示: 4Qt读ini文件includeQApplicationincludeQSettingsincludeQDebugintmain(intargc,charargv〔〕){QApplicationa(argc,argv);QSettingsconfigIniReadnewQSettings(hahaya。ini,QSettings::IniFormat);将读取到的ini文件保存在QString中,先取值,然后通过toString()函数转换成QString类型QStringipResultconfigIniReadvalue(ipsecond)。toString();QStringportResultconfigIniReadvalue(portopen)。toString();打印得到的结果qDebug()ipRqDebug()portR读入入完成后删除指针deleteconfigIniRreturna。exec();}