Qt之文件读取与写入

普通TxT文本文件读取

这里只使用qt里普通的控制台来测试文件读写操作

txt文件读取(以字符数组形式读取)

  //读取文件首先我们需要一个文件对象
    QFile file("data.txt");//创建一个文件对象,并且初始化文件对象
    if(file.open(QIODevice::ReadOnly)){//以只读的方式打开文件
          //第一种方式就是利用字符数组来读取
        char buffer[100];
        qint32 n=file.readLine(buffer,sizeof(buffer));
        //因为readline函数读取文件内容成功的话就会返回文件的字节数,如果失败就会返回-1
        if(n!=-1){
            qDebug()<<"长度:"<<n
                   <<"内容:"<<buffer
                  <<endl;
        }
        file.close();
    }else{
        qDebug()<<file.errorString();
    }

需要注意的是,我们读取文件当然必须得存在这个文件,这样读取才会成功。还有一点需要注意的,就是可能文件已经存在了,但是上面的代码还是提示找不到对应文件,可能是Qt设置的运行目录与文件存在的位置不匹配,这样就会读取失败

图片

 

txt文件写入

   QFile file1("data1.txt");
    if(file1.open(QIODevice::WriteOnly|QIODevice::Truncate)){
        QDataStream out(&file1);

        out<<QString("周杰伦")
           <<QDate::fromString("1979-01-18","yyyy-MM-dd")
        <<(qint32)41;
        file1.close();

    }else{
        qDebug()<<file1.errorString()<<endl;
    }

 这里提一下的就是写入利用数据流QDataStream来实现写入,打开失败的时候可以调用errorString的方法实现打印调试信息。

txt文件读取(第二种方式以数据流读取)

file1.setFileName("data1.txt");
    if(file1.open(QIODevice::ReadOnly)){
        //第二种方式就是一数据流读取文件内容
        QDataStream in(&file1);
        QString name;
        QDate birthday;
        qint32 age;
        in>>name>>birthday>>age;
        qDebug()<<name<<birthday<<age;
        file1.close();

    }else{
        qDebug()<<file1.errorString();
    }

读取文件信息的时候,需要与读取的文件数据类型相匹配,提下的就是如果在写文件的时候没有自己要打开的文件,编译器会自动为我们创建一个这样的文件。

读写文件也不仅仅是局限一个txt文件,还可以是二进制文件bat亦或者是其他的文件。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值