文件读写是许多应用程序的功能,甚至某些应用程序都是围绕处理某种格式的文件开发的,因此文件读写是应用程序开发的基本功能.
文本文件是以纯文本格式存储的文件,例如Qt Creator中编写的C ++程序的头文件(上部文件)和源程序文件(.cpp文件). HTML和XML文件也是纯文本文件,但是需要在读取后进行解析和显示.
Qt提供了两种用于读取和写入纯文本文件的基本方法: 使用QFile类的IODevice读取和写入功能直接读取和写入,使用QFile和QTextStream组合并使用Stream方法读取和写入文件.
示例samp7_1演示了这两种读取和写入文本文件的方法,其运行时窗口如图1所示. 该示例不仅演示了如何打开文本文件,而且还具有文件保存功能.
图1示例samp7_1的运行时窗口
QFile读取和写入文本文件. QFile类是直接与IO设备处理读写文件的类. 使用QFile,您可以直接打开或保存文本文件.
图1工具栏上的“ QFile直接打开”按钮直接打开带有QFile类功能的文本文件. 按钮槽功能及相关功能代码如下:
void MainWindow::on_actOpen_IODevice_triggered()
{//打开文件
QString curPath=QDir::currentPath();//获取系统当前目录
QString dlgTitle="打开一个文件"; //对话框标题
QString filter="程序文件(*.h *.cpp);;文本文件(*.txt);;所有文件(*.*)"; //文件过滤器
QString aFileName=QFileDialog::getOpenFileName(this,dlgTitle,curPath,filter);
if (aFileName.isEmpty())
return;
openTextByIODevice(aFileName);
}
bool MainWindow::openTextByIODevice(const QString &aFileName)
{//用IODevice方式打开文本文件
QFile aFile(aFileName);
if (!aFile.exists()) //文件不存在
return false;
if (!aFile.open(QIODevice::ReadOnl