Qt文件操作QFile

    258

先导

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

使用

简单使用以及说明

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

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

简单使用读取文件:

    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在读取文件是确保文件是存在的,不然文件不能打开

简单写入文件

    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来对文件进行操作

读取文件:

    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();

写入文件:

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


impressionyang
消息盒子

# 暂无消息 #

只显示最新10条未读和已读信息