您当前的位置: 首页 >  qt

txwtech

暂无认证

  • 3浏览

    0关注

    813博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

QT写入文件与读取文件内容

txwtech 发布时间:2022-07-27 22:27:44 ,浏览量:3

QT写入文件与读取文件内容

 

QT写入文件与读取文件内容-C++文档类资源-CSDN下载QT写入文件与读取文件内容更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/txwtech/86263528

文件的读写是很多应用程序具有的功能,甚至某些应用程序就是围绕着某一种格式文件的处 理而开发的,所以文件读写是应用程序开发的一个基本功能。 文本文件是指以纯文本格式存储的文件,例如用 Qt Creator 编写的 C++ 程序的头文件(上文件)和源程序文件(.cpp 文件)。HTML 和 XML 文件也是纯文本文件,只是其读取之后需要对内容进行解析之后再显示。 Qt 提供了两种读写纯文本文件的基本方法:

这些取值可以组合,例如 QIODevice::ReadOnly | QIODevice::Text 表示以只读和文本方式打开文件。

创建类文件方便调用:

  1. 用 QFile 类的 IODevice 读写功能直接进行读写
  2. 利用 QFile 和 QTextStream 结合起来,用流(Stream)的方法进行文件读写。
  3. QFile读写文本文件
  4. QFile 类是直接与 IO 设备打交道,进行文件读写操作的类,使用 QFile 可以直接打开或保存文本文件。
  5. QFile::open() 函数打开文件时需要传递 QIODevice::OpenModeFlag 枚举类型的参数,决定文件以什么方式打开,QIODevice::OpenModeFlag 类型的主要取值如下:
  6. QIODevice::ReadOnly:以只读方式打开文件,用于载入文件。
  7. QIODevice::WriteOnly:以只写方式打开文件,用于保存文件。
  8. QIODevice::ReadWrite:以读写方式打开。
  9. QIODevice::Append:以添加模式打开,新写入文件的数据添加到文件尾部。
  10. QIODevice::Truncate:以截取方式打开文件,文件原有的内容全部被删除。
  11. 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

关注
打赏
1665060526
查看更多评论
立即登录/注册

微信扫码登录

0.0853s