【发布时间】:2013-10-25 11:22:58
【问题描述】:
我尝试使用 QTextStream 从 xml 文件中读取数据,但最后我得到了空字符串。 这是我的代码:
QFile f("note.xml");
if(f.open(QIODevice::ReadWrite)){
QTextStream in(&f);
in.setCodec("UTF-8");
qDebug()<<in.readAll();
}else qDebug()<<"failed";
这里是xml文件的内容:
<?xml version="1.0" encoding="UTF-8" ?>
<note>
<to>George</to>
</note>
我使用的是 Qt_version 5.1.1 和 MinGW_32bit-Debug,Windows 7。如果我将 xml 文件更改为 txt 文件,结果仍然是空字符串。
【问题讨论】:
-
QFile::open是否返回 true?f.readAll()是否返回任何数据? -
QFile::openreutrn true 并且f.readAll()没有返回数据 -
确保您打开的文件存在。尝试使用
QIODevice::ReadOnly标志打开它,因为QIODevice::ReadWrite标志在指定文件不存在时会自动创建一个空文件。 -
现在
QFile::open返回false。但我很确定文件存在。
标签: xml qt qfile qtextstream