主页 > 电脑硬件  > 

QT——文件IO

QT——文件IO
QFile 类

构造函数

QFile() 无参构造     仅仅构建一个QFile 对象,不设定文件名

QFile(文件名)     构建一个QFile对象的同时,设定文件名     但是注意,仅仅设定文件名,并不会打开该文件

设定文件名

QFile file file.setFileName(文件名) 并不会打开

打开文件

file.open(打开模式)

 

文件写

qint64 write(const char *data, qint64 maxSize)

    file.write(数据,数据长度)//将data,最多maxSize个字节,写入file代表的文件中 

qint64 write(const char *data)

    file.write(数据)//将data,到结束符为止,写入file代表的文件中 

 qint64 write(const QByteArray &byteArray)

    QByteArray本质是c语言的字符数组,做一段内存来管理 我们的数据一般是一个 QString 对象     so要将一个 QString 对象转换成 QByteArray 对象:          QString  str = "hello"//QString,有toLocal8Bit() :将QString转换成 QByteArray     QByteArray   qarr = str.toLocal8Bit();

class Widget : public QWidget { public: Widget(QWidget *parent = nullptr); ~Widget(); void save_data(const QString &filename,const QString &data); private: Ui::Widget *ui; QFile file; }; Widget::~Widget() { QString name=ui->lineEdit->text(); save_data("D:/name.text",name); delete ui; } void Widget::save_data(const QString &filename, const QString &data) { file.setFileName(filename); file.open(QFile::WriteOnly); file.write(data.toLocal8Bit()); file.close(); } 文件读 

qint64 read(char *data, qint64 maxSize)

    char buf[64] = {0}     file.read(buf,64)//从file文件中读取最多64个字节的数据,并且将读取到的数据写入buf中     返回读取到的数据的字节数

QByteArray read(qint64 maxSize)

    QByteArray   qarr = file.read(64)// 从file文件中,读取最多64个字节的数据,并且将读取到的数据,构建成一个QByteArray对象后返回

将  QByteArray 数据,转换成 QString 数据         1:在QByteArray 寻找,返回值是 QString,函数名是toXXXX,形参没有的函数         2:在QString的构造函数,寻找参数为 QByteArray 的构造函数             不支持中文         3:在QString的静态方法,寻找返回值为 QString,参数是 QByteArray的函数            找到 fromLocal8Bit(),支持中文

QByteArray    readAll()

    QByteArray arr = file.readAll()// 读取文件中的全部数据 //将读取到的数据,构建成 QByteArray 后返回

Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); QString name=load_data("D:name.text"); ui->lineEdit->setText(name); } QString Widget::load_data(const QString &filename) { file.setFileName(filename); file.open(QFile::ReadOnly); QByteArray barr=file.readAll(); QString str=QString::fromLocal8Bit(barr); file.close(); return str; }
标签:

QT——文件IO由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“QT——文件IO