找回密码
 立即注册
收起左侧

可以写文件,并且open文件正常,无法读出文件内容

3
回复
7789
查看
[复制链接]
累计签到:12 天
连续签到:1 天
来源: 2017-5-10 20:16:25 显示全部楼层 |阅读模式
1Qter豆
本帖最后由 edg233 于 2017-5-10 20:18 编辑

我的问题是:可以写文件,并且open文件正常,无法读出文件内容,怎么改都不行,求助帮忙 感谢
   //文件地址   QString WordFileAddr = "C:/Users/l/Desktop/word.txt";    QFile EngWordFile(WordFileAddr);  //文件打开并判断
   if(!EngWordFile.open(QIODevice::ReadWrite | QIODevice::Append))
      {        qDebug("open file failed");        exit(1);      }
//判断文件大小,这边的打印正常,能打印出文件正常大小   
int size = EngWordFile.size();  
  qDebug("full file size is %d",size);
// 在这边做了一个测试打印,发现EngWordFile.atEnd()的赋值是TRUE,不理解为什么会这样,因为值为TRUE 直接后面的循环都没进。我的文件里确定是有东西的  
qDebug()<<EngWordFile.atEnd();
//读文件试过的两种方法  
  while(!EngWordFile.atEnd()) {  
      QByteArray line = EngWordFile.readLine();        
     QString str(line);     
   qDebug()<< str;    }
   /* QTextStream in(&EngWordFile);     
in.setCodec("utf-8");   
  QString line = in.readLine();   
  qDebug() << line.isNull();   
  while(!line.isNull()){         qDebug() << line;         ui->textBrowser->setText(line);*/
    EngWordFile.close();}



最佳答案

查看完整内容

把打开方式改了,不要QIODevice::Append,这个模式默认去读文件末尾,你当然读不到
回复

使用道具 举报

累计签到:955 天
连续签到:1 天
2017-5-10 20:16:26 显示全部楼层
把打开方式改了,不要QIODevice::Append,这个模式默认去读文件末尾,你当然读不到
回复

使用道具 举报

累计签到:12 天
连续签到:1 天
2017-5-11 12:59:32 显示全部楼层
wdmxtk002 发表于 2017-5-10 20:16
把打开方式改了,不要QIODevice::Append,这个模式默认去读文件末尾,你当然读不到 ...

你好删掉Append以后就写不进文件了。。  如果我想在文件后面添加后续新内容 该改成什么模式呢感谢
回复

使用道具 举报

累计签到:12 天
连续签到:1 天
2017-5-11 13:20:50 显示全部楼层
wdmxtk002 发表于 2017-5-10 20:16
把打开方式改了,不要QIODevice::Append,这个模式默认去读文件末尾,你当然读不到 ...

不好意思,我发现是我自己把文件给close了所以写不进去- -
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了