QFile

小明 2025-05-02 12:25:51 8

QFile

读index.php/tags-41973.html" class="superseo">���本文件,写文本文件。

()
  • ui创建两个Push Button,一个Text Edit
  • widget.h
    private slots:
        void on_pushButtonread_clicked();
        void on_pushButton_2write_clicked();
    
    • widget.cpp
      #include "widget.h"
      #include "ui_widget.h"
      #include 
      #include 
      #include 
      #include 
      #include 
      Widget::Widget(QWidget *parent) :
          QWidget(parent),
          ui(new Ui::Widget)
      {
          ui->setupUi(this);
      }
      Widget::~Widget()
      {
          delete ui;
      }
      void Widget::on_pushButtonread_clicked()
      {
          QString path = QFileDialog::getOpenFileName(this, "open", "../", "TXT(*.txt)");
          if (path.isEmpty() == false)
          {
              //文件对象
              QFile file(path);
              //打开文件,只读方式
              bool isOK = file.open(QIODevice::ReadOnly);
              if(isOK == true)
              {
      #if 0
                  //读文件 默认只识别utf8编码
                  QByteArray array = file.readAll();
                  // 显示到编辑区
                  // ui->textEdit->setText(QString(array));
                  ui->textEdit->setText(array);
      #endif
                  QByteArray array;
                  while (file.atEnd() == false) {
                      //读一行
                      array += file.readLine();
                  }
                  ui->textEdit->setText(array);
              }
              //关闭文件
              file.close();
              // 获取文件信息
              QFileInfo info(path);
              qDebug() 
          QString path = QFileDialog::getSaveFileName(this, "save", "../", "TXT(*.txt)");
          if (path.isEmpty() == false)
          {
              //文件对象
              QFile file;
              // 关联文件名字
              file.setFileName(path);
              //打开文件,只写方式
              bool isOK = file.open(QIODevice::WriteOnly);
              if(isOK == true)
              {
                  // 获取编辑区内容
                  QString str = ui-textEdit-toPlainText();
                  // QString -- QByteArray
                  // file.write(str.toUtf8());
                  // 另外的写法 QString -- c++ string -- char *
                  // file.write(str.toStdString().data());
                  // 另外的写法 转换为本地编码
                  file.write(str.toLocal8Bit());
              }
              file.close();
          }
      }
      
The End
微信