Qt新建txt文件,文件名加入时间、文本文件的读写操作

二进制文件的读写文件可以使用QFile类、QStream文本文件的读写建议使用QTextStream类,它操作文件更加方便。打开文件时,需要参数指定打开文件的模式:

模式描述
QIODevice::NotOpen0x0000不打开
QIODevice::ReadOnly0x0001只读方式
QIODevice::WriteOnly0x0002只写方式,如果文件不存在则会自动创建文件
QIODevice::ReadWrite(ReadOnly + WriteOnly)读写方式
QIODevice::Append0x0004此模式表明所有数据写入到文件尾
QIODevice::Truncate0x0008打开文件之前,此文件被截断,原来文件的所有数据会丢失
QIODevice::Text0x0010读的时候,文件结束标志位会被转为’\n’;写的时候,文件结束标志位会被转为本地编码的结束为,例如win32的结束位’\r\n’
QIODevice::UnBuffered0x0020不缓存

1. 写数据到文本文件:

    QFileInfo l_info("./file0305.exe");
    QString l_str = l_info.absolutePath();//绝对路径:D:\QT\QT5.6.1\Projects\file0305\build-file0305-Desktop_Qt_5_6_1_MinGW_32bit-Debug

    QString dir_str;
    int i=5;
    QString str = QString::number(i);//文件夹名(int转QString )
    dir_str = l_str+"/"+str;
    QDir dir;
    dir.mkpath(dir_str);新建文件夹:(文件夹名:5)
    QDateTime datetime;
    // QString timestr=datetime.currentDateTime().toString("yyyy.MM.dd_HH.mm.ss");
    QString timestr=datetime.currentDateTime().toString("yyyy.MM.dd");
    QString fileName = dir_str +"/"+ timestr + ".txt";
    QFile file(fileName);
//          if(!file.exists())
//          {
//              bool res2 = file.open(QIODevice::WriteOnly | QIODevice::Text );
//              qDebug() << "新建文件是否成功" << res2;
//           }
//           else
//          {
//              qDebug() <<"文件存在" ;
//          }
/*******写数据到文本文件*******/
    if (file.open(QIODevice::WriteOnly | QIODevice::Text|QIODevice::Append) )
    {
         //---待存入文本文件的字符串。
        for(int i=1;i<5;i++)
        {
            char cBuf[14] = "我和你\n";
            //-----将数据写入文件
            qint64 LineLen = file.write(cBuf, sizeof(cBuf));
            //----同上,写入文件失败,将返回 -1
            if (-1 != LineLen)
            {
                //---输出写入文件的内容
                qDebug() << cBuf;
            }
         }
     }
  file.close();	

运行后文本文件添加4行内容:
在这里插入图片描述
2. 读文本文件的数据:

QFileInfo l_info("./file0305.exe");
    QString l_str = l_info.absolutePath();//绝对路径:D:\QT\QT5.6.1\Projects\file0305\build-file0305-Desktop_Qt_5_6_1_MinGW_32bit-Debug

    QString dir_str;
    int i=5;
    QString str = QString::number(i);//文件夹名(int转QString )
    dir_str = l_str+"/"+str;
    QDir dir;
    dir.mkpath(dir_str);新建文件夹:(文件夹名:5)
    QDateTime datetime;
    // QString timestr=datetime.currentDateTime().toString("yyyy.MM.dd_HH.mm.ss");
    QString timestr=datetime.currentDateTime().toString("yyyy.MM.dd");
    QString fileName = dir_str +"/"+ timestr + ".txt";
    QFile file(fileName);
/*******读文本文件的数据*******/
 if (file.open(QIODevice :: ReadOnly))	//	以只读的方式打开
  {
        for(int i=1;i<5;i++)
        {
             char cBuf[128];
             qint64 LineLen = file.readLine(cBuf, sizeof(cBuf));	//---读取文本文件的一行
             if (-1 != LineLen)							//---读取成功,将返回读取的字节,读取失败,将返回-1
             {
                 qDebug() << cBuf;					//--输出读取的文本文件内容
             }
        }
  }
  file.close();	

原txt文本的数据:
在这里插入图片描述
运行后应用程序输出:
在这里插入图片描述

参考博文:
https://blog.csdn.net/zong596568821xp/article/details/78920243?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
https://blog.csdn.net/HK_5788/article/details/42417291?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值