一、Qt文件读写
Qt提供了多种文件读写的方法,可以使用QFile、QIODevice、QTextStream等类对文件进行读写。其中,QFile是针对二进制文件进行读写的类,而QTextStream则是针对文本文件进行读写的类。 使用QFile类读取文件的示例代码如下:
QFile file("test.txt");
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
QTextStream in(&file);
QString line = in.readLine();
// do something with line
file.close();
}
代码中,先创建一个QFile对象来打开文件,然后使用QTextStream类来读取文件内容,并把文件内容按行读取到QString对象中。读取完成后,使用file.close()
方法关闭文件。
使用QFile类写入文件的示例代码如下:
QFile file("test.txt");
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QTextStream out(&file);
out << "Hello, world!\n";
file.close();
}
代码中,通过QFile::open()
方法以WriteOnly
和Text
模式打开文件后,使用QTextStream类的<<
运算符来写入数据,并使用file.close()
方法关闭文件。
二、Qt文件中写入XML
在Qt中,可以使用QXmlStreamWriter
类来写入XML文件。QXmlStreamWriter
类提供了开始元素、结束元素、写入元素内容等方法,方便用户进行XML文件的写入。
写入XML文件的示例代码如下:
QFile file("test.xml");
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("root");
xmlWriter.writeStartElement("person");
xmlWriter.writeAttribute("name", "Tom");
xmlWriter.writeTextElement("age", "18");
xmlWriter.writeEndElement(); // person
xmlWriter.writeEndElement(); // root
xmlWriter.writeEndDocument();
file.close();
}
代码中,首先创建QFile
对象并打开文件,然后创建QXmlStreamWriter
对象,并使用setAutoFormatting()
方法启用自动缩进和换行。在写入XML之前,使用writeStartDocument()
方法写入XML文件的声明,并使用writeStartElement()
方法写入XML文件的根节点。在根节点中,使用writeStartElement()
方法写入一个person
节点,并使用writeAttribute()
方法写入节点的属性。而使用writeTextElement()
方法则是写入节点的内容。然后使用writeEndElement()
方法关闭节点,在最后使用writeEndDocument()
方法写入XML文件的结尾。最后用close()
方法关闭文件。
三、Qt写TXT文件
存储一些非结构性数据时,文本文件是一种更好的方案,Qt提供了很多种写入文本文件的方法,而QTextStream
则是其中最常用的。
写入TXT文件的示例代码如下:
QFile file("test.txt");
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QTextStream out(&file);
out << "Hello, world!\n";
file.close();
}
代码中,首先创建QFile
对象并打开文件,然后用QTextStream
类的<<
运算符来写入数据,并使用file.close()
方法关闭文件。