#include <QCoreApplication>
#include <QFile>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
//1:创建QFile对象,指定操作的相关文件
QFile qfs("d:/qfiletext.txt");
//2:打开文件进行写操作ReadOnly ReadWrite Append Truncate
if(!qfs.open(QIODevice::WriteOnly|QIODevice::Text))
{
qDebug()<<"打开文件失败,请重新检查";
}else{
qDebug()<<"恭喜你,打开文件成功!";
}
//3:向打开文件写数据信息
qfs.write("零声教育--");
qfs.write("QT开工程师");
//4:关闭文件
qfs.close();
//读取文件数据
//定义字符指针
if(!qfs.open(QIODevice::ReadOnly|QIODevice::Text))
{
qDebug()<<"打开文件失败,请重新检查";
}else{
qDebug()<<"恭喜你,打开文件成功!";
}
char *pStr=new char[200];
qint64 rcount=qfs.readLine(pStr,200);
while((rcount!=0)&&(rcount!=-1))
{
qDebug()<<pStr;
rcount=qfs.readLine(pStr,200);
}
qfs.close();
return a.exec();
}
读写二进制文件。
#include <QCoreApplication>
#include <QFile>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
//将anumber里面的数据写入到文件
qint32 qnumber[3]={1,2,3};
//将qnumber数据以二进制方式存储到字节数组当中
QByteArray bytearray;
bytearray.resize(sizeof(qnumber));
for(int i=0;i<3;i++)
{
//for循环利用指针将每个整数复制到字符数组里面去
memcpy(bytearray.data()+i*sizeof(qint32),&(qnumber[i]),sizeof(qint32));
}
//将bytearray字节数组存储至对应文件当中QFileBinaybyte.txt
QFile qfs("d:/QFileBinaryByte.dat");
if(!qfs.open(QIODevice::WriteOnly))
{
qDebug()<<"打开文件失败";
}else{
qDebug()<<"打开文件成共";
}
qfs.write(bytearray);
qfs.close();
//先打开,在读取数据
if(!qfs.open(QIODevice::ReadOnly))
{
qDebug()<<"打开文件失败";
}else{
qDebug()<<"打开文件成共";
}
QByteArray byteArray=qfs.readAll();
qDebug()<<"byteArray"<<byteArray;
char *ctemp=byteArray.data();
while(*ctemp)
{
qDebug()<<*(qint32*)ctemp;
ctemp=ctemp+sizeof(qint32);
}
qfs.close();
return a.exec();
}
1、 QTextStream类书写文本文件,提供很多读写文件相关的方法,还可以设定写入到文件的数据格式,比如对其方式等等。
创建QDataStream对象常用的数据结构函数为:QDataStream::QDataStream(QIODvice *d)
2、QDateStreram类的用法和QTextStream非常类似,主要区别在于QDataStream用于读写二进制文件
#include <QCoreApplication>
#include <QFile>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QFile qfs("d:/qtextstreamfile.txt");
if(!qfs.open(QIODevice::WriteOnly|QIODevice::Text))
{
qDebug()<<"打开失败";
}else{
qDebug()<<"打开成功";
}
QTextStream qtextstreamwrite(&qfs);
qtextstreamwrite<<(QString)"本人巨帅无比";
qfs.close();
//读取文件
if(!qfs.open(QIODevice::ReadOnly|QIODevice::Text))
{
qDebug()<<"文件打开失败";
}else
{
qDebug()<<"文件打开成";
}
QTextStream qtextstreamread(&qfs);
while(!qtextstreamread.atEnd())
{
QString strtemp;
qtextstreamread>>strtemp;
qDebug()<<strtemp;
}
qfs.close();
return a.exec();
}