前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Qt文件操作QFile

Qt文件操作QFile

作者头像
impressionyang
发布2020-08-26 21:59:29
1.6K0
发布2020-08-26 21:59:29
举报
文章被收录于专栏:impressionyang的个人分享

先导

因为有需求使用Qt的文件I/O操作,所以做此记录以供后用

使用

简单使用以及说明

简单的使用基本上分4步:

  1. 定义文件变量
  2. 打开文件
  3. 执行文件I/O操作
  4. 关闭文件

简单使用读取文件:

代码语言:javascript
复制
QFile file("your file path");
file.open(QFile::ReadOnly);
QByteArray buf;
while(file.read(buf.data(),1024)>0){
    cout<<buf;
    buf.clear();
}
file.close();

上述文件读取操作中,使用的是C++习惯下的read函数,其使用也和C++read函数差不多,需要讲解一下的是QFileopen函数的参数,有以下的表列

参数

说明

NotOpen

不打开文件

ReadOnly

只读

WriteOnly

只写

ReadWrite

可读写

Append

追加

Truncate

尽可能在打开文件前删除

Text

限定文本操作,读文件的话结束符翻译为文本的\n,写文件则结尾时写入当前系统的文本结束符,例如win的\n\r

Unbuffered

不能使用缓存流I/O

NewOnly

在创建文件的时候确保文件是不存在的,不然文件不能打开

ExistingOnly

在读取文件是确保文件是存在的,不然文件不能打开

简单写入文件

代码语言:javascript
复制
QFile file("your file path");
file.open(QFile::WriteOnly | QFile::Truncate);
QByteArray buf("text to write");
file.write(buf);
file.close();

使用stream进行读写

使用stream进行读写时可以使用输入(>>)输出(<<)流符号进行格式化输入输出,读写方便,在Qt的文件I/O中可以使用QTextStreamQDateStream来对文件进行操作

读取文件:

代码语言:javascript
复制
QFile file("in.txt");
if (!file.open(QFile::ReadOnly | QFile::Text))
    return;

QByteArray buf;
QTextStream in(&file);
while (!in.atEnd()) {
    in>>buf.data();
    cout<<buf;
    buf.clear();
}
file.close();

写入文件:

代码语言:javascript
复制
QFile file("out.txt");
if (!file.open(QFile::WriteOnly | QFile::Text))
    return;

QTextStream out(&file);
out << "a=" << 1 << "\n";
out.flush();
file.close();

后记

Qt的文件操作对于一个应用软件来说是一个重要的使用方式,虽然上面讲述了Qt文件I/O的基本操作,但是其使用方式还有很多,这仅仅是最基本的使用方式而已,以后还有很多东西需要学习的


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 先导
  • 使用
    • 简单使用以及说明
      • 使用stream进行读写
      • 后记
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档