34黑马QT笔记之QFile读文件

34黑马QT笔记之QFile读文件

1 QFile的作用:
相当于一个虚拟文件,需要与具体文件关联才能操作,一般配合文件对话框的返回值来使用,即getOpenFileName函数。当然,也可以在创建QFile时关联一个不存在的文件路径,保存后自动创建该文件。

2 如何读取一个本地的文件显示到指定控件(一般是文本编辑区)呢?
1)利用文件对话框函数getOpenFileName获取路径。
2)将选择好的文件路径与QFile关联。
3)打开文件。
4)利用read或者readAll或者readLine等等,将数据读取到字节数组QByteArray,然后将其显示在文本编辑区即可。
5)关闭文件。

3 代码:

void MyWidget::on_Mybutton1_clicked()
{
    //QFile的作用:相当于一个虚拟文件,需要与具体文件关联才能操作 一般配合文件对话框的返回值来使用 即getOpenFileName函数
    //也可以在创建QFile时关联一个不存在的文件路径 保存后自动创建该文件



    //1 利用文件对话框获取文件路径
    QString path=QFileDialog::getOpenFileName(this,"文件对话框","./..");
    if(path.isEmpty())
    {
        return ;             //注意构造函数无返回值 所以不要给它值就可以
    }

    //2 定义QFile文件并关联
    QFile file(path);

    //3 打开文件
    //与linux一样 只不过linux的open三个参数 将关联与打开合在一起
    bool ret=file.open(QIODevice::ReadOnly);
    if(ret==false)
    {
        return ;
    }

    //4 对文件进行操作
    //QFile只能默认显示utf8 显示其他编码需要后面的文本流
    QByteArray array=file.readAll();
    ui->textEdit->setText(QString(array));

#if 0
    //使用readLine:

    //若文件还没读到尾 则一行一行读到字节数组中
    QByteArray array;
    while(file.atEnd()==false)
    {
        //readLine的默认参数maxSize=0表示以一行的最大字节数来读
        //若设定maxSize则表示按设定的字节数来读 并且设定时maxSize不能超过一行的最大字节数
        array+=file.readLine();         //不要忘了+
    }
    ui->textEdit->setText(QString(array));
#endif

    //5 关闭QFile文件
    file.close();
}

4 了解一下Qt下的一些IO设备:
在这里插入图片描述
可以看出Qt下的IO操作基类是QIODevice。我说一下我认识的和Qt常用的。
1)常用的就是QFile,第一点作用已经说了。然后还有QTcpSocket和QUdpSochet,这两个就是相当于Linux下的Tcp连接和Udp连接,他们继承于网络通信的共同抽象类。
2)QBuffer相当于一个缓冲区类。QProcess相当于Linux下的exec函数族,功能类似,可以在程序执行时转去exec设定的外部程序执行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值