写操作:
#include <QtCore/QCoreApplication>
#include <QFile>
#include <QtDebug>
#include <QTextStream>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QFile file("test.txt");
//---参数:QFile::Truncate表示的是 将原文件内容清空,
//--以WriteOnly方式打开文件,如果在工程文件下没有该txt文件,那么程序将创建该文件,若存在,则将原文件内容清空,
if (file.open(QFile::WriteOnly | QFile :: Truncate))
{
//---创建 QTextStream流操作对象, 使与QFile对象file绑定。
QTextStream out(&file);
//----设置输出格式为: 居中,这里格式还可以设置为:right/left。 占10个字符;
out << "socre:" << qSetFieldWidth(10) << center << 90 << endl;
}
else
{
qDebug() << "open file failed";
}
file.close(); //---关闭文件~~~~~~
//-----输出提示信息
qDebug() << "\1 writing data succesful \1" << endl;
return a.exec();
}
程序运行结果:
QTextStream提供的格式化函数:
QTextStreamManipulator qSetFieldWidth(int width) ------设置字段宽度
QTextStreamManipulator qSetPadChar(QChar ch) ------设置填充字符
QTextStreamManipulator qSetRealNumberPrecision(int precision) -----设置实数精度
读操作:
QFile file("file.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return 0;
QTextStream in(&file);
1.QString QTextStream::read ( qint64 maxlen )
读取txt文件maxlen个字符
QString line1= in.read(1); //读取一个字符
QString line2= in.read(1); //自动读取下一个字符
qDebug()<<line1;
qDebug()<<line2;
QString line1= in.read(20); //读取20个字符,归为一个字符串
2.QString QTextStream::readLine ( qint64 maxlen = 0 )
QString line1= in.readLine(0); //读取第0行文档
QString line2= in.readLine(5); //读取第0行5个文档
qDebug()<<line1;
qDebug()<<line2;
QString line1= in.readLine(); //读取第0行文档
QString line2= in.readLine(); //自动读取第1行文档
qDebug()<<line1;
qDebug()<<line2;
3.QString QTextStream::readAll ()
QString line1= in.readAll(); //读取全部txt文档,并归为一个字符串
4.bool QTextStream::seek ( qint64 pos )
bool a=in.seek(6); //定位文本中的第6个位置
QString line2= in.read(1) ; //读取该位的1字符
qDebug()<<line2;
5.读取txt全部内容的方法
/******************************************
两种方法读取txt文档
*****************************************/
/* while (!in.atEnd()) {
QString line = in.readLine();
qDebug()<<line;
}
QString line3=in.readLine();
while(!line3.isNull())
{
qDebug()<<line3;
line3=in.readLine();
}*/