我尝试使用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文件,结果仍为空字符串。
答案 0 :(得分:3)
我认为您的问题可能与您没有将完整路径传递给QFile构造函数有关。如果文件不在当前路径中,则对QFile :: open的调用可能会成功(可能是因为您在读取和写入模式下打开)创建新文件,因此读取返回空字符串。为避免这种情况,您可以检查文件是否存在。尝试将代码更改为以下内容:
QFile f("/complete-path/note.xml");
if(f.exists() && f.open(QIODevice::ReadWrite) {
. . .
编辑:正如汉克在评论中提出的那样。 :)