Qt文件处理

Posted Respect@

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt文件处理相关的知识,希望对你有一定的参考价值。

文件处理

文件处理

QFile类用于文件操作,它提供了读写文件的接口,可以读写文件、二进制文件和Qt资源文件。
处理文本文件和二进制文件,可以使用QTextStream类和QDataStream类。处理临时文件可以使用QTemporaryFile,获取信息可以使用QFileInfo,处理目录可以使用QDir,监视文件和目录变化可以使用QFileSystemWatcher.

操作符作用描述
bin设置读写的整数为 二进制数
oct设置读写的整数为 八进制数
dec设置读写的整数为十进制数
hex设置读写的整数为十六进制数
showbase强制显示进制前缀,如十六进制(0x)、八进制(0)、二进制(0b)
forcesign强制显示符号(+、-)
forcepoint强制显示小数点
noshowbase强制不显示前缀
noforcesign强制不显示符号
uppercasebase显示大写的进制前缀
lowercasebase显示小些的进制前缀
uppercasedigits用大写字母表示
lowercasedigits用小写字母表示
fixed固定小数点表示
scientific科学计数法表示
left左对齐
right右对齐
center居中
endl换行
flush清除缓冲

demo

#include <QCoreApplication>
#include <QFile>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QFile file("hello.txt");
    //读取文件
    if( file.open(QIODevice::ReadOnly) ){
        char buffer[100];
        //返回-1表失败,成功则返回读取的字节数

        qint32 n;
        n = file.readLine(buffer,sizeof(buffer));
        if( n != -1){
            qDebug() << "长度:" << n
                     << "内容:" << buffer
                     << endl;
        file.close();
        }
    }else{
        qDebug() << file.errorString();
    }

    //文件写入
    double dPI = 3.1415926;
    int age = 13;
    QFile dataFile;
    dataFile.setFileName("data.txt");
    if( dataFile.open(QFile::WriteOnly | QFile::Truncate) ){
        QTextStream out(&dataFile);
        out.setRealNumberPrecision(3);
        out.setFieldWidth(10);
        out.setFieldAlignment(QTextStream::AlignRight);

        out << QString("PI:")
//            << qSetRealNumberPrecision(3)//设置整数精度位数
//            << qSetFieldWidth(10)   //设置字段宽度
            << scientific
            << left //做对齐
            << dPI
//            << hex
//            << showbase
//            << uppercasebase
            << age;
    }

    return a.exec();
}

以上是关于Qt文件处理的主要内容,如果未能解决你的问题,请参考以下文章

Qt编程遇到的问题,我在qt中直接使用C语言的程序片段,有问题 ,求解

python常用代码片段总结

qt creator源码全方面分析(2-0)

Qt:从代码中的任何位置访问当前设置文件

使用 qt 作为新进程执行批处理文件

qt多个线程调用同一个类怎么处理