QT写入文件与读取文件内容
QT写入文件与读取文件内容-C++文档类资源-CSDN下载QT写入文件与读取文件内容更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/txwtech/86263528
文件的读写是很多应用程序具有的功能,甚至某些应用程序就是围绕着某一种格式文件的处 理而开发的,所以文件读写是应用程序开发的一个基本功能。 文本文件是指以纯文本格式存储的文件,例如用 Qt Creator 编写的 C++ 程序的头文件(上文件)和源程序文件(.cpp 文件)。HTML 和 XML 文件也是纯文本文件,只是其读取之后需要对内容进行解析之后再显示。 Qt 提供了两种读写纯文本文件的基本方法:
这些取值可以组合,例如 QIODevice::ReadOnly | QIODevice::Text
表示以只读和文本方式打开文件。
创建类文件方便调用:
- 用 QFile 类的 IODevice 读写功能直接进行读写
- 利用 QFile 和 QTextStream 结合起来,用流(Stream)的方法进行文件读写。
- QFile读写文本文件
- QFile 类是直接与 IO 设备打交道,进行文件读写操作的类,使用 QFile 可以直接打开或保存文本文件。
- QFile::open() 函数打开文件时需要传递
QIODevice::OpenModeFlag
枚举类型的参数,决定文件以什么方式打开,QIODevice::OpenModeFlag 类型的主要取值如下: - QIODevice::ReadOnly:以只读方式打开文件,用于载入文件。
- QIODevice::WriteOnly:以只写方式打开文件,用于保存文件。
- QIODevice::ReadWrite:以读写方式打开。
- QIODevice::Append:以添加模式打开,新写入文件的数据添加到文件尾部。
- QIODevice::Truncate:以截取方式打开文件,文件原有的内容全部被删除。
- QIODevice::Text:以文本方式打开文件,读取时“\n”被自动翻译为换行符,写入时字符串结束符会自动翻译为系统平台的编码,如 Windows 平台下是“\r\n”。
Class_File_Operation.cpp
#include "class_file_operation.h"
#include
#include
#include
Class_File_Operation::Class_File_Operation()
{
}
QString Class_File_Operation::ReadTxtFile(QString file_path)
{
QFile file(file_path);
if(!file.open(QIODevice::ReadOnly|QIODevice::Text))
{
return "error";
}
else
{
return file.readAll();
}
}
void Class_File_Operation::WriteTxtFile(QString file_path, QString write_content)
{
QFile file(file_path);
// if(!file.open(QIODevice::WriteOnly|QIODevice::Text))//只写方式打开,文件不存在则创建
if(!file.open(QIODevice::Append|QIODevice::Text))
{
qDebug()textEdit_read_content->setTextColor(QColor(255,0,0)); //字体颜色
ui->lineEdit_file_path->setBackgroundRole(QPalette::Light);
ui->textEdit_write_content->setText("写入测试");
}
MainWindow_FileOperation::~MainWindow_FileOperation()
{
delete ui;
}
void MainWindow_FileOperation::on_action_about_triggered()
{
QMessageBox::information(this,"关于",tr("demo by txwtech\ncontact:txwtech@163.com"));
}
void MainWindow_FileOperation::on_pushButton_read_clicked()
{
ui->textEdit_read_content->setText( fOperation->ReadTxtFile(ui->lineEdit_file_path->text()));
}
void MainWindow_FileOperation::on_pushButton_write_clicked()
{
fOperation->WriteTxtFile(ui->lineEdit_file_path2->text(),ui->textEdit_write_content->toPlainText());
}
注意获取lineEdit与textEdit的区别 ui->lineEdit_file_path->text() ui->textEdit_write_content->toPlainText()
头文件:
#ifndef MAINWINDOW_FILEOPERATION_H
#define MAINWINDOW_FILEOPERATION_H
#include
#include "class_file_operation.h"
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow_FileOperation; }
QT_END_NAMESPACE
class MainWindow_FileOperation : public QMainWindow
{
Q_OBJECT
public:
MainWindow_FileOperation(QWidget *parent = nullptr);
~MainWindow_FileOperation();
Class_File_Operation *fOperation;
private slots:
void on_action_about_triggered();
void on_pushButton_read_clicked();
void on_pushButton_write_clicked();
private:
Ui::MainWindow_FileOperation *ui;
};
#endif // MAINWINDOW_FILEOPERATION_H
#ifndef CLASS_FILE_OPERATION_H
#define CLASS_FILE_OPERATION_H
#include
class Class_File_Operation
{
public:
Class_File_Operation();
QString ReadTxtFile(QString file_path);
void WriteTxtFile(QString file_path,QString write_content);
};
#endif // CLASS_FILE_OPERATION_H