广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C/C++Qt基本文件读写的基本使用(2种实现)
  • 942
分享到

C/C++Qt基本文件读写的基本使用(2种实现)

2024-04-02 19:04:59 942人浏览 安东尼
摘要

目录Qt基本文件读写QTextStream 实现流读写文件的读写是很多应用程序具有的功能,甚至某些应用程序就是围绕着某一种格式文件的处 理而开发的,所以文件读写是应用程序开发的一个基

文件的读写是很多应用程序具有的功能,甚至某些应用程序就是围绕着某一种格式文件的处 理而开发的,所以文件读写是应用程序开发的一个基本功能。

Qt文件操作有两种方式,第一种使用QFile类的ioDevice读写功能直接读写,第二种是利用 QFile和QTextStream结合起来,用流的方式进行文件读写。

第一种,利用QFile中的相关函数,实现对文件的读写操作,QFile会调用IODevice设备,从而实现文件读写。

QT基本文件读写

通过QFile实现文本文件读写操作.


#include <QCoreApplication>
#include <iOStream>
#include <QFile>
#include <QString>
#include <QTextStream>

// 一次读入所有文本
bool ReadFileOnly(const QString &file_path)
{
    QFile ptr(file_path);

    // 文件是否存在
    if(!ptr.exists())
    {
        return false;
    }

    // 文件是否打开
    

    if(!ptr.open(QIODevice::ReadWrite | QIODevice::Text))
    {
        return false;
    }

    QString text = ptr.readAll();
    std::cout << text.toStdString() << std::endl;
    ptr.close();
}

// 追加写入文本
bool WriteFileOnly(const QString &file_path, QString save)
{
    // 如果参数为空则返回假
    if(file_path.isEmpty() && save.isEmpty())
    {
        return false;
    }

    QFile ptr(file_path);
    if(!ptr.open(QIODevice::Append | QIODevice::Text))
    {
        return false;
    }

    QByteArray str_bytes = save.toUtf8();

    ptr.write(str_bytes,str_bytes.length());
    ptr.close();
    return true;
}

QFile::open() 函数打开文件时需要传递 QIODevice::OpenModeFlag 枚举类型的参数,决定文件以什么方式打开,QIODevice::OpenModeFlag 类型的主要取值如下:

QIODevice::ReadOnly:以只读方式打开文件,用于载入文件。

QIODevice::WriteOnly:以只写方式打开文件,用于保存文件。

QIODevice::ReadWrite:以读写方式打开。

QIODevice::Append:以添加模式打开,新写入文件的数据添加到文件尾部。

QIODevice::Truncate:以截取方式打开文件,文件原有的内容全部被删除。

QIODevice::Text:以文本方式打开文件,读取时“\n”被自动翻译为换行符,写入时字符串结束符会自动翻译为系统平台的编码,如 windows 平台下是“\r\n”。

这些取值可以组合,例如 QIODevice::ReadOnly | QIODevice::Text 表示以只读和文本方式打开文件。

QTextStream 实现流读写

直接使用流写入,可以使用<< 运算符,方便的写入文本。


#include <QCoreApplication>
#include <iostream>
#include <QFile>
#include <QString>
#include <QTextStream>
#include <QTextCodec>

// 计算文件行数
qint32 get_file_count(const QString &file_path)
{
    QFile ptr(file_path);
    qint32 count = 0;

    if(ptr.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        QTextStream in(&ptr);

        // 自动检测unicode编码,显示中文
        in.setAutoDetectUnicode(true);

        while(!in.atEnd())
        {
            QString line = in.readLine();
            std::cout << line.toStdString() << std::endl;
            count = count +1;
        }

        return count;
    }
    return 0;
}

// 追加写入数据
bool write_file_stream(const QString &file_path, QString save)
{
    QFile ptr(file_path);

    if(ptr.open(QIODevice::Append | QIODevice::Text))
    {
        QTextStream in(&ptr);
        in << save;
    }
    ptr.close();
    return true;
}

int main(int arGC, char *argv[])
{
    QCoreApplication a(argc, argv);

    // 设置编码
    QTextCodec *codec = QTextCodec::codecForName("utf-8");
    QTextCodec::setCodecForLocale(codec);

    // 流写入
    write_file_stream("d://test.txt","hello lyshark");
    write_file_stream("d://test.txt","你好,世界");

    // 取文本长度
    qint32 count = get_file_count("d://test.txt");
    std::cout << "line = > " << count << std::endl;
    return a.exec();
}

到此这篇关于C/C++ Qt 基本文件读写的基本使用(2种实现)的文章就介绍到这了,更多相关Qt 文件读写内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C/C++Qt基本文件读写的基本使用(2种实现)

本文链接: https://www.lsjlt.com/news/158495.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C/C++Qt基本文件读写的基本使用(2种实现)
    目录QT基本文件读写QTextStream 实现流读写文件的读写是很多应用程序具有的功能,甚至某些应用程序就是围绕着某一种格式文件的处 理而开发的,所以文件读写是应用程序开发的一个基...
    99+
    2022-11-12
  • C#Csv实现基本的读写和转换DataTable
    目录Csv文件基本的属性Csv读写方式方式一:一次性读写方式二:使用文件流形式读写Csv文件读写DataTable类型Csv文件基本的属性 csv文件可以在excel或者wps中以表...
    99+
    2023-02-05
    C# Csv读写 C# Csv转换DataTable
  • 如何使用C#读写文本文件
    这篇文章将为大家详细讲解有关如何使用C#读写文本文件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。读取txt文件 如果你要读取的文件内容不是很多,可以使用 File.ReadAllText(...
    99+
    2023-06-15
  • C#中Csv怎么实现基本的读写和转换
    这篇文章主要介绍“C#中Csv怎么实现基本的读写和转换”,在日常操作中,相信很多人在C#中Csv怎么实现基本的读写和转换问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#中Csv怎么实现基本的读写和转换”的疑...
    99+
    2023-07-05
  • C#读写文本文件(.txt)的方法实例
    读取txt文件 如果你要读取的文件内容不是很多,可以使用 File.ReadAllText(filePath) 或指定编码方式 File.ReadAllText(FilePath...
    99+
    2022-11-12
  • C#实现文本读取的7种方式
    目录前言第一个方式第二个方式第三个方式第四个方式第五个方式第六个方式第七个方式前言 文本读取在上位机开发中经常会使用到,实现的方式也有很多种,今天跟大家分享一下C#实现读取读取的7种...
    99+
    2022-11-13
  • 一文搞懂C#实现读写文本文件中的数据
    【1】首先我们定义一段假数据,这里以一个string为例字   static void Main(string[] args) { string data = "我的数据要开始...
    99+
    2022-11-12
  • 详解C语言实现推箱子的基本功能(2)
    目录1.前言2.地图代码修改成函数3.角色移动修改成函数3.1寻找角色函数3.2角色移动函数4.判断胜利修改成函数5.主体函数的实现6.推箱子能实现基本功能的源码总结1.前言 本文章...
    99+
    2022-11-13
  • Android应用程序中读写txt文本文件的基本方法讲解
    最终效果图,点击save会保存到文件中,点击show会从文件中读取出内容并显示。 main.xml <?xml version="1.0" encodi...
    99+
    2022-06-06
    程序 方法 Android
  • 教你用Java GUI实现文本文件的读写
    目录一、实验题目二、分析三、实现四、全部代码一、实验题目 二、分析 实验要求为: 实现一个界面,界面中包含一个文本显示区和两个按钮(存档和读档) 读档按钮作用是打...
    99+
    2022-11-12
  • C++使用windwos api实现获取计算机基本信息
    目录一、windwos系统包含的基本信息二、获取信息的方法(附代码)三、获取windwos电源信息四、总结一、windwos系统包含的基本信息 Windows 计算机的基本信息包括以...
    99+
    2023-05-17
    C++获取计算机基本信息 C++获取计算机信息 C++ 计算机信息
  • 怎么使用C语言Iniparser库实现ini文件读写
    这篇“怎么使用C语言Iniparser库实现ini文件读写”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用C语言Ini...
    99+
    2023-07-05
  • 如何使用C#中的File.ReadAllText函数读取文本文件内容
    如何使用C#中的File.ReadAllText函数读取文本文件内容在C#编程中,我们经常需要读取文本文件的内容。File.ReadAllText是一个非常方便的函数,可以帮助我们快速读取文本文件的全部内容。本文将介绍如何使用File.Re...
    99+
    2023-11-18
    C# 读取文件 FileReadAllText
  • C#怎么使用Ueditor富文本框实现上传文件
    本篇内容介绍了“C#怎么使用Ueditor富文本框实现上传文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用背景项目中需要用的富文本框去...
    99+
    2023-07-02
  • C#使用百度Ueditor富文本框实现上传文件
    目录使用背景准备创建项目配置项目使用使用背景 项目中需要用的富文本框去上传视频,图片的话大部分都是可以的。相对来说,国外的富文本框很成熟。但鉴于文档是英语,这里使用了百度的富文本框。...
    99+
    2022-11-13
  • 如何使用h5+js实现本地文件读取和写入
    小编给大家分享一下如何使用h5+js实现本地文件读取和写入,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!   代码如下:   读取本地文件   <!doctypehtml>...
    99+
    2022-10-19
  • C++怎么使用GDAL库实现Tiff文件的读取
    这篇文章主要介绍了C++怎么使用GDAL库实现Tiff文件的读取的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++怎么使用GDAL库实现Tiff文件的读取文章都会有所收获,下面我们一起来看看吧。库编译首先需要...
    99+
    2023-07-05
  • 基于C语言利用哈夫曼树实现文件压缩的问题
    一、哈夫曼树         具有n个权值的n个叶子结点,构造出一个二叉树,使得该树的带权路径长度(W...
    99+
    2022-11-12
  • 基于rsync写脚本实现多节点多服务器文件一键同步的方法
    目录集群脚本分发scp基本语法简单操作rsync基本语法简单操作xsync需求实现SSH 无密码登录免登陆原理操作步骤集群脚本分发 在处理 Linux 集群的时候,常常会涉及到集群内...
    99+
    2022-11-12
  • vue使用v-model进行跨组件绑定的基本实现方法
    大家好,今天我们来说一下使用v-model实现父子组件的绑定效果 1:简单版代码如下: 父组件: <template> <div> // 3:使用...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作