QFile文件

我们通过一个小案例来实现文件的读写工作:

读文件

read按钮是读入文本,write是写入文本

首先我们将read按钮转到槽

需要添加头文件:

#include<QFile>
#include<QFileDialog>

然后写上槽函数代码:

void Widget::on_pushButton_clicked()
{
    QString path=QFileDialog::getOpenFileName(this,"open","../");//获取读入文件的路径表示可 
                                                                 //以读入所有类型的文 
                                                                 //件,也可以指定文件类型
    if(path.isEmpty()==false)//如果非空
    {
        QFile file(path);//创建文件对象
        //只读方式,默认只读UTF-8
        bool isok=file.open(QIODevice::ReadOnly);//以只读的方式打开
        if(isok)
        {
            //读文件,一次性读完
           // QByteArray array=file.readAll();//因为这个方法返回的是一个字节数组
            //一行一行读
            QByteArray array;
            while(file.atEnd()==false)
            {
                array+=file.readLine();
            }
            //显示到编辑区
            ui->textEdit->setText(array);
        }
        file.close();//关闭文件
    }
}

有两种方法,一种是一次性读完:readdAll,一种是一行一行读:readLine

 

写文件

将wirte按钮转到槽

void Widget::on_pushButton_2_clicked()
{
    //保存文件对话框
   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)
       {
           //获取编辑区内容
           QString str=ui->textEdit->toPlainText();
           file.write(str.toUtf8());
           //file.write(str.toStdString().data());//将String类型转换成char*类型,也是UTF8
       }
       file.close();
   }
}

注意了,将编辑区内容转换成UTF8的方法有两种,上面有写,因为QT都是UTF8编码

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值