Qt文件操作QFile

2020-08-26 21:59:29 浏览数 (1)

先导

因为有需求使用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的nr

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的基本操作,但是其使用方式还有很多,这仅仅是最基本的使用方式而已,以后还有很多东西需要学习的


0 人点赞