QFileDialog::getOpenFileName() //获取指定文件路径名返回QString QFileDialog::getExistingDirectory() //获取指定路径返回QString QFileDialog::getSaveFileName() //获取指定保存路径名返回QString

第一部分:资料链接。

链接地址
QT5 文件读写操作 - 疯颠研究者 - 博客园 https://www.cnblogs.com/flowingwind/p/8336159.html
 


第二部分:内容简介。

  • 文件读写操作。
  • 文件流操作   。
  • 操作细节问题。

第三部分:内容详情。

read读文件操作流程:

  • 加载文件对象  QFile file("文件地址");
  • 打开加载的文件file.open(打开方式);
  • 操作文件
  • 关闭打开的文件file.colse();
 
  
void Widget::on_pushButton_clicked()
{
    QFile file("L:/qtpro/_qtApp/text/t.txt");
    file.open(QIODevice::ReadOnly | QIODevice::Text);
    QByteArray t = file.readAll();
    ui->text_r->setText(QString(t));
    file.close();
}

wirte写文件

  • 加载文件对象
  • 打开QFile对象
  • 写入文件操作
  • 关闭打开的文件;
  • 备注:以纯文本的形式读取要保存文件到QString对象 //ui->text_e->toPlainText();
void Widget::on_pushButton_2_clicked()
{
    QString e = ui->text_e->toPlainText();
    QFile file("L:/qtpro/_qtApp/text/e.txt");
     file.open(QIODevice::WriteOnly | QIODevice::Text);
file.write(e.toUtf8()); file.close();}

细节优化处理

  • read文件添加读取文件选择项 QFileDialog::getOpenFileName();
  • 打开文件是否成功的判断;
  • 按行读取文件,可控制读取行数与每行字符数;
  • write文件创建保存路径QFileDialog::getSaveFileName(); 
void Widget::on_pushButton_clicked()
{
    QFile file;
    QString f = QFileDialog::getOpenFileName(this, QString("选择文件"), QString("/"),QString("TEXT(*.txt)"));
    file.setFileName(f);
    if(file.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        QByteArray t ;
        while(!file.atEnd())
        {
            t += file.readLine();
        }
        ui->text_r->setText(QString(t));
        file.close();
    }
}
void Widget::on_pushButton_2_clicked()
{
    QString e = ui->text_e->toPlainText();
    QFile file;
    file.setFileName(QFileDialog::getSaveFileName(this, QString("保存路径"), QString("/"),QString("TEXT(*.txt)")));
    file.open(QIODevice::WriteOnly | QIODevice::Text);
    file.write(e.toUtf8());
    file.close();
}

各编码转换

QString -> QByteArray      QString.toUtf8();

QByteArray -> std::string  QByteArray.toStdString();

std::string -> char *        string.date();

获取文件信息;

QFileInfo类用于读取文件的属性信息

    QFile file(f);
    QFileInfo info(file);
  
    qDebug() << info.exists();
    qDebug() << info.isFile();
    qDebug() << info.isReadable();
    qDebug() << info.isWritable();
    qDebug() << info.created();
    qDebug() << info.lastRead();
    qDebug() << info.lastModified();
    qDebug() << info.path();
    qDebug() << info.fileName();
    qDebug() << info.suffix();
    qDebug() << info.size();


常用静态函数:

QFileDialog::getOpenFileName()    //获取指定文件路径名返回QString

QFileDialog::getExistingDirectory()  //获取指定路径返回QString

QFileDialog::getSaveFileName()    //获取指定保存路径返回QString


文本流


数据流


第四部分:总结











猜你喜欢

转载自blog.csdn.net/wghkemo123/article/details/80875118