|
写操作: #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();
}*/
|