0

我尝试使用 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 文件,结果仍然是空字符串。

4

1 回答 1

3

我认为您的问题可能与您没有将完整路径传递给 QFile 构造函数的事实有关。如果文件不在当前路径中,则对 QFile::open 的调用可能会成功(可能是因为您以读写模式打开)创建一个新文件,因此读取返回一个空字符串。为避免这种情况,您可以检查文件是否存在。尝试将代码更改为以下内容:

QFile f("/complete-path/note.xml");
if(f.exists() && f.open(QIODevice::ReadWrite) {
    . . .

编辑:正如汉克刚刚在评论中建议的那样。:)

于 2013-10-25T11:50:22.347 回答