【Qt】9.文本流、数据流

目录

文本流

数据流

代码

widget.cpp

结果

文本流

  1. QFile file (path)

  2. QTextStream(&file

  3. stream<<写

  4. stream .readAll >>遇到空格结束

数据流

  1. QDataStream stream (&file)

  2. stream<<写数据

  3. stream

代码

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QFileDialog>
#include <QMessageBox>
#include <QFile>
#include <QFontInfo>
#include <QDebug>
#include <QDateTime>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //点击按钮,选取文件
    connect(ui->pushButton,&QPushButton::clicked,[=](){
        QString path=QFileDialog::getOpenFileName(this,"打开文件","/home/cet/Qt/JiaoCheng/15");
        if(path.isEmpty()){
            QMessageBox::warning(this,"警告","打开失败");
        }
        else{
            //将路径放入到lineEdit
            ui->lineEdit->setText(path);

            //读取文件,QFile默认支持UTF-8格式
            QFile file(path);//参数路径名称

            //指定打开方式,只读
            file.open(QFileDevice::ReadOnly);

            QByteArray array;
            array=file.readAll();

            //设置到文本编辑框中
            ui->textEdit->setText(array);
            file.close();

            //写文件,重新指定打开方式
            /*file.open(QFileDevice::Append);
            file.write("踩踩踩踩踩");
            file.close();*/

            //通过QFileInfo读取文件信息
            QFileInfo info(path);
            qDebug()<<"路径:"<<info.filePath();
            qDebug()<<"名称:"<<info.fileName();
            qDebug()<<"文件大小:"<<info.size();
            qDebug()<<"后缀名:"<<info.suffix();
            qDebug()<<"创建日期:"<<info.created().toString("yyyy-MM-dd hh:mm:ss");
            qDebug()<<"修改日期:"<<info.lastModified().toString("yyyy/MM/dd hh:mm:ss");
        }
    });

    //文件流写文件
    //文本流,基础数据类型
    QFile file("/home/cet/Qt/JiaoCheng/15/15/a1.txt");
    file.open(QFileDevice::WriteOnly);
    QTextStream liu(&file);
    liu<<QString("你好 世界!")<<123456;
    file.close();

    //读取
    file.open(QFileDevice::ReadOnly);
    QString str;
    str=liu.readAll();
    qDebug()<<str;

    //数据流,二进制形式,大数据类型
    QFile file2("/home/cet/Qt/JiaoCheng/15/15/a2.txt");
    file2.open(QFileDevice::WriteOnly);
    QDataStream liu2(&file2);
    liu2<<QString("你好 世界!")<<123456;
    file2.close();

    //读数据
    file2.open(QFileDevice::ReadOnly);
    QString str2;
    int num;
    liu2>>str2>>num;
    qDebug()<<str2<<num;

}

Widget::~Widget()
{
    delete ui;
}

结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

因心,三人水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值