Qt之文件操作 基础详解

目录

一.QFile

1.以只写方式打开一个文件,并往文件中写入数据

2.以只读模式打开一个文件,并读取数据

 3.以可读可写打开文件,并进行读写操作;

4.以追加模式打开文件 并写入数据

二.QFileInfo


一.QFile

        QFile类提供用于读/写文件的接口, 文本文件,二进制文件,Qt资源可以用它来读写。

        我们通常在构建QFile对象时就指定好文件名,也可以先不指定文件名,通过setFileName方法设置文件名。

    //第一种
    QFile file("file.txt");
    //第二种
    QFile file;
    file.setFileName("file.txt");

        当我们构建好QFile对象时,就可以对一个文件进行读写了,可以使用open()打开文件,close()关闭文件,flush()刷新文件。open()有三个重载的函数,一般我们使用下面这个:Qt之文件操作 基础详解_第1张图片

 参数OpenMode mode有这几种打开方式:Qt之文件操作 基础详解_第2张图片需要注意的是在QIODevice::WriteOnly和QIODevice::ReadWrite两种模式下文件不存在会创建一个新文件。

1.以只写方式打开一个文件,并往文件中写入数据

    QFile file;
    file.setFileName("file.txt");
    //只读方式打开
    if (!file.open(QIODevice::WriteOnly))
        {
            qDebug() << "Failed to open the file for writing.";
            return -1;
        }
    //写入数据
    file.write("hello world\n");
    file.write("hello Qt\n");
    file.close();

 这个时候打开工程所在文件夹里面的file.txt文件就会发现已经写入了数据。

注意:以只写模式打开文件,不可以进行读操作

2.以只读模式打开一个文件,并读取数据

    QFile readFile("file.txt");
    if(!readFile.open(QIODevice::ReadOnly)){
        qDebug()<<"Failed to open the file for writing";
    }
    //读取五个字符数据
    QString str = readFile.read(5);
    //移动光标到文件头
    readFile.seek(0);
    //读取全部数据
    QString str1 = readFile.readAll();
    //移动光标到文件头
    readFile.seek(0);
    //读取一行数据
    QString str2 = readFile.readLine();
    //打印调试信息
    qDebug()<

 以只读模式打开文件,打开失败打印调试信息,读数据时有多种方法:read()读取多少位数据 上面read(5)就是读取前五位数据为”hello“;readAll()读取所有数据;readLine()读取一行数据;

注意:

        1.每次读写操作,需要将光标移到文件最开始的位置用seek()方法,否则可能和预期不符;

        2.只读模式下不可以进行写操作;

 3.以可读可写打开文件,并进行读写操作;

    QFile readWriteFile("file.txt");
    if(!readWriteFile.open(QIODevice::ReadWrite)){
        qDebug()<<"Failed to open the file for writing";
    }
    //移动光标到文件末尾
    readWriteFile.seek(file.size());
    //在文件末尾写入
    readWriteFile.write("Good\n");
    //移动光标到文件开头
    readWriteFile.seek(0);
    //从文件头开始读取数据
    QString str3 = readWriteFile.readAll();
    qDebug()<

 注意:

        1.每次打开文件光标位置在文件头;

        2.在读写模式下写数据会从光标开始处覆盖掉原始数据,覆盖长度为写入数据长度,若当前光标位置后无数据,即文件末尾,则将数据追加到文件中;

4.以追加模式打开文件 并写入数据

    //追加方式打开
    QFile appendFile("file.txt");
    if(!appendFile.open(QIODevice::Append)){
        qDebug()<<"Failed to open the file for writing";
    }
    //光标自动定位到文件末尾
    appendFile.write("Great");
    appendFile.close();

注意:

        1.追加模式下光标默认在文件末尾,因此要读取数据要重新打开文件读取数据;

        2.每次打开文件都要close()关闭文件;

二.QFileInfo

        QFileInfo类提供了获取文件信息的一些接口,比如文件名,文件路径,创建时间,文件后缀,文件大小等;


    QFileInfo info("file.txt");
    qDebug()<<"文件路径:"<

下篇更新Qt中对json数据的基本处理方式,感谢阅读

你可能感兴趣的:(qt,c++,c语言,单片机)