写文件——写出来的文件并不是中文、UTF-8的形式的文本,所以在读取的时候需要进行向UTF-8的转化。
void Widget::writeData()
{
//创建文件对象
QFile file("../test.txt");
//打开文件,以只写的方式打开文件
bool isOK=file.open(QIODevice::WriteOnly);
if(true==isOK)
{
//创建数据流.和file文件关联
//往数据流中输入数据,相当于往文件里写数据
QDataStream steam(&file);
steam<<QString("主要看气质")<<520;
}
file.close();
}
所写文件:
读文件——注意读取文件的时候要按照写的顺序读取,其次需要把文件转换成UTF-8(str.toUtf8().data())来打印,否则是乱码。
void Widget::readData()
{
//创建文件对象
QFile file("../test.txt");
//打开文件,以只读的方式打开文件
bool isOK=file.open(QIODevice::ReadOnly);
if(true==isOK)
{
//创建数据流.和file文件关联
//往数据流中读取数据,相当于在文件里读数据
QDataStream steam(&file);
//读的时候,按写的顺序取数据
QString str;
int a;
steam>>str>>a;
//qDebug()<<str.toUtf8().data()<<a;
cout<<str.toUtf8().data()<<a;
}
file.close();
}
运行:
写出来的文件
打印内容
下面介绍一个小技巧
#define cout qDebug()<<"["<<__FILE__<<":"<<__LINE__<<"]"
__FILE__是代码文件(使用预处理宏cout)的名称
__LINE__是代码(使用预处理宏cout)行数