Qt基础开发之Qt文件操作类QFile读写文件的详细方法与实例及QDataStream的使用方法
2020-03-17 12:04
711 查看
Qt文件操作类QFile简介
Qt中使用QFile类来操作文件的输入/输出。继承至QIODevice,QIODevice类是输入/输出设备的基类,
为设备提供了公共实现和抽象接口用于读写块数据。QIODevice又继承至QObject。
1、使用QFile类打开文件
QFile的构造函数
QFile(const QString &name) //传入一个文件路径
构造完成后,并没有打开文件,需要使用QFile::open函数来打开文件
[virtual] bool QFile::open(OpenMode mode); /* *OpenMode mode 打开方式,是一个枚举类型 *QIODevice::NotOpen 不打开 *QIODevice::ReadOnly 只读方式 *QIODevice::WriteOnly 读写方式 *QIODevice::ReadWrite 读写方式 *QIODevice::Append 追加方式 *QIODevice::Truncate 阶段方式 *QIODevice::Text 转换不同平台的换行,读的时候把所有换行转成'\n',写的时候再把'\n'转换对应平台的换行 *QIODevice::Unbuffered 不使用缓冲区 */
例如:
QFile file("d:/123.txt"); file.open(QIODevice::ReadOnly);
2、QFile类关闭文件
[virtual] void QFileDevice::close(); //刷新缓冲区,并关闭文件
3、QFile类文件读操作
QIODevice::read函数
QByteArray QIODevice::read(qint64 maxSize);//读取maxSize个字节,内部位置指针后移maxSize,并返回一个QByteArray对象。
例如:
QFile file("d:/123.txt"); file.open(QIODevice::ReadOnly); qDebug() << file.read(10) << endl; file.close();
QIODevice::readLine函数
QByteArray QIODevice::readLine(qint64 maxSize = 0) //读取一行,但是这一行不能超过maxSize字节,maxSize = 0代表不限制行字节数。
例如:
QFile file("d:/123.txt"); file.open(QIODevice::ReadOnly); qDebug() << file.readLine(10) << endl; file.close();
QIODevice::readAll函数
QByteArray QIODevice::readAll()
4、QFile类文件写操作
QIODevice::write函数
qint64 QIODevice::write(const QByteArray &byteArray); //将byteArray写入文件,写完内部位置指针后移
例如:
QFile file("d:/123.txt"); file.open(QIODevice::ReadWrite | QIODevice::Text); //打开模式可以使用‘|'组合 QByteArray byte("hellworld"); file.write(byte); file.write(byte); file.close();
5、QDataStream
流控文件输入输出可以使用QDataStream。
流控写入
#include <QDataStream> #include <QDebug> #include <QFile> int main(int argc, char**argv) { QFile file("d:/123.txt"); file.open(QIODevice::ReadWrite); QDataStream stream(&file); int a = 10; QString str = "helloworld"; stream << a << str; file.close(); return 0; }
流控读取
#include <QDataStream> #include <QDebug> #include <QFile> int main(int argc, char**argv) { QFile file("d:/123.txt"); file.open(QIODevice::ReadWrite); QDataStream stream(&file); int a; QString str; stream >> a >> str; qDebug() << "a:" << a << "str:" << str << endl; file.close(); return 0; }
本文主要介绍了Qt文件操作类QFile读写文件的详细方法与实例及QDataStream的使用方法,更多关于Qt基础开发知识请查看下面的相关链接
您可能感兴趣的文章:
- Qt GUI图形图像开发之QT表格控件QTableView详细使用方法与实例
- Qt GUI图形图像开发之Qt表格控件QTableView简单使用方法及QTableView与QTableWidget区别
- Qt GUI图形图像开发之QT表格控件QTableView,QTableWidget复杂表头(多行表头) 及冻结、固定特定的行的详细方法与实例
- Qt图形图像开发之Qt曲线图美化QChart QScatterSeries 空心点阵图,鼠标移动到上面显示数值,鼠标移开数值消失效果实例
- Qt串口通信开发之QSerialPort模块Qt串口通信接收数据不完整的解决方法
- Qt串口通信开发之QSerialPort模块简单使用方法与实例
- Qt串口通信开发之Qt串口通信模块QSerialPort开发完整实例(串口助手开发)
- Qt串口通信开发之QSerialPort模块详细使用方法与实例
- Qt图形图像开发之QT滚动区控件(滚动条)QScrollArea的详细方法用法图解与实例
- Qt图形图像开发之曲线图表模块QChart库一个chart中显示两条曲线详细方法与实例
- Qt图形图像开发之曲线图表模块QChart库坐标轴和数据不对应、密集的散点图无法显示问题解决方法
- Qt图形图像开发曲线图表模块QChart库缩放/平移详细方法与实例
- Qt图形图像开发之曲线图表模块QChart库读取/设置X轴的显示区间
- Qt图形图像开发曲线图表模块QChart库基本用法、各个类之间的关系说明
相关文章推荐
- Qt基础开发之Qt多线程类QThread与Qt定时器类QTimer的详细方法与实例
- python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
- Qt图形图像开发之高性能曲线图模块QCustomplot库详细使用方法与实例(支持动、静曲线图)
- python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
- python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
- python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
- python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
- python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
- python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
- Qt开发小工具之gif转换器(使用QMovie截取每一帧为QImage,然后用QFile另存为图片文件)
- python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
- python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
- python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
- python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例
- python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
- Qt GUI图形图像开发之QT表格控件QTableView,QTableWidget复杂表头(多行表头) 及冻结、固定特定的行的详细方法与实例
- JAVA基础学习之流的简述及演示案例、用缓冲区方法buffer读写文件、File类对象的使用、Serializable标记接口(6)
- python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
- python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例
- python爬虫开发之Request模块从安装到详细使用方法与实例全解