• 8529阅读
  • 11回复

关于文件读写的效率 [复制链接]

上一主题 下一主题
离线laurentium
 
只看楼主 正序阅读 楼主  发表于: 2008-12-10
— 本帖被 XChinux 执行加亮操作(2008-12-11) —
程序需要频繁读写大量文本,每次读写都会卡死一会,现在用的是用QSettings来写ini文件的方式,请问有没有好的办法?多谢~~
离线sevencat

只看该作者 11楼 发表于: 2008-12-10
1000行并不算多,
战争就是和平,自由就是奴役,愚味就是力量
离线water_wf

只看该作者 10楼 发表于: 2008-12-10
不能吧我的 findinfiles都是在线程中操作的,没有问题啊
离线laurentium
只看该作者 9楼 发表于: 2008-12-10
to water_wf
对,我试过了,提示qtextstream不能在另一个线程操作
离线laurentium
只看该作者 8楼 发表于: 2008-12-10
用数据库还不熟练
用sqllite就可以么?
那怎么把数据库的内容存到文件里和从文件里读呢?
离线lazybone
只看该作者 7楼 发表于: 2008-12-10
10000行日志 为何不用数据库
离线water_wf

只看该作者 6楼 发表于: 2008-12-10
这个肯定要线程来做的,qtextstream不能线程?
离线sevencat

只看该作者 5楼 发表于: 2008-12-10
ini肯定有问题,因为ini要对整个文件解析。
要经常操作,还是用二进制。
战争就是和平,自由就是奴役,愚味就是力量
离线laurentium
只看该作者 4楼 发表于: 2008-12-10
QTextStream的效率也不理想,而且QTextStream还不能另开一个线程来操作,郁闷
把10000行日志保存到文件,界面有明显的卡死,这时候别的操作就不能响应了
离线nmiirq

只看该作者 3楼 发表于: 2008-12-10
用QTextStream还慢吗?
离线cspp

只看该作者 2楼 发表于: 2008-12-10
二进制文件格式读取速度最快了
离线lazybone
只看该作者 1楼 发表于: 2008-12-10
  1.     QFile file("in.txt");
  2.     if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
  3.         return;
  4.     QTextStream in(&file);
  5.     while (!in.atEnd()) {
  6.         QString line = in.readLine();
  7.         process_line(line);
  8.     }

  1. QFile file = new QFile("c:/TEST/a.txt");
  2.         if (!file.open(new QIODevice.OpenMode(QIODevice.OpenModeFlag.ReadOnly,
  3.                 QIODevice.OpenModeFlag.Text)))
  4.             return;
  5.         int flag = 1;// 行数标记
  6.         while (!file.atEnd()) {
  7.             QByteArray line = file.readLine();
  8.             if (flag++ == 3)
  9.                 System.out.print(line);
  10.         }
快速回复
限100 字节
 
上一个 下一个