Qt中有关文件的读写操作

本文以 ".txt"文件做为案例解析

首先说文件的几种打开方式,跟多文章里都有,我这边直接复制过来,具体可以查看 参考文档的第一个

文件的  写 操作:

QString file_name = "./debug/111.txt"; //文件路径,根据自己需求
//   我之前的同事喜欢用这个函数,大家可以借鉴,如下:
//   QCoreApplication::applicationDirPath()
//   整体:QString file_name = QCoreApplication::applicationDirPath()+"/文件夹名/文件名.txt";

QFile file(file_name);
if(file.open(QIODevice::WriteOnly)) //只写模式打开
{
    //两种输入方式
    
    //第一种,文件流形式
    QTextStream St_file(&file);
    St_file.setCodec(QTextCodec::codecForName("utf-8")); //按“utf-8”模式存放,如果数据中有中文最好写这段代码,不然读的时候可能会出现乱码
    St_file << 数据 <<endl;
    file.close(); //写完后一定要关闭文件

    //第二种,文件输入
    QString data = 写入的数据;
    file.write(data.toUtf8()); //效果和文件流的按"utf-8"格式输入一样
    file.close(); //写完后一定要关闭文件

    //可以写完后找到文件打开查看右下角是不是 utf-8 格式
}

下面说读文件的方式,具体操作和写入并无二致,主要是函数的不同。

第一种,选择文件打开。

QFileDialog::getOpenFileName();

QString QFileDialog::getOpenFileName|getSaveFileName(
                QWidget * parent = 0,                 //父类
				const QString & caption = QString(),  //标题
				const QString & dir = QString(),      //默认打开的目录
				const QString & filter = QString()) [static]    //文件格式过滤器
QString file_name = QFileDialog::getOpenFileName(null,tr("案例"),"",tr("Txt 文件 (*.txt)"));

QFile file(file_name);
if(file.open(QIODevice::ReadOnly)) //只读模式打开
{
    QTextStream S_file(&file);
    S_file.setCodec("UTF-8"); //防止读取数据是中文时出现乱码
    QString data;
    while(!S_file.atEnd())
    {
        data = S_file.readLine().trimmed(); //一行一行的读,trimmed是为去除一些字符,"\n"、" "、 "\t"等等

    }
    file.close();记得关闭文件

    //第二种正常读取
    //直接用file读即可
    while(!file.atEnd())
    {
        file.readLine().trimmed();
    }
    file.close();

}

参考文档:

Qt学习之QIODevice类-CSDN博客

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值