QHotkey
QlistWidget QTableWidget 窗口置顶 QCefView EXCEL Jieba分词 剪切板 Mysql QTableView QRegularExpression正则 JQHttpServer POST 匹配TDK unicode转中文 eventFilter dr_url与dr_member_url 缓存 URI地址 数据库操作 系统目录常量 模板标签 QSpinBox Quick QCompress压缩 QLibrary QMap QVariant QNetworkAccessManager Qchart QFile Qjson QJSEngine QFileDialog对话框 QSet QTimer时钟

写文件:

 QFile f(dir + "所有网址.txt");//创建QFile文件类的对象
 if (!f.open(QIODevice::WriteOnly | QIODevice::Text))//打开文件
 {
  log(f.fileName() + ":文件无法写入");
  return;
 }
 QTextStream out(&f);//创建文本流类的对象
 for (auto iter = webku.begin(); iter != webku.end(); iter++)
 {
  out << qian + iter.key() + hou;//将数据写入文本中  
 }
 f.close();//关闭文本



读文件:

QFile file("res/progress.data");
 if (!file.exists())
 {
  log("进度文件不存在!");
  return;
 }
 if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { return; }

 //保存起来
 QSet<QString> tmpSet;
 while (!file.atEnd())
 {
  QByteArray line = file.readLine();//读取一行
  auto tmp = line.trimmed().split('|');

  if (tmp.count() == 2)
  {
   webku.insert(tmp[0], tmp[1].toInt());
   if (tmp[1].toInt() == 1)
   {
    tmpSet.insert(QString(tmp[0]));
   }
  }
 }
 file.close();//关闭文件


QIODevice类解析

QIODevice::NotOpen       未打开

QIODevice::ReadOnly     以只读方式打开

QIODevice::WriteOnly    以只写方式打开

QIODevice::ReadWrite   以读写方式打开

QIODevice::Append        以追加的方式打开,新增加的内容将被追加到文件末尾

QIODevice::Truncate      以重写的方式打开,在写入新的数据时会将原有数据全部清除,游标设置在文件开头。

QIODevice::Text             在读取时,将行结束符转换成 \n;在写入时,将行结束符转换成本地格式,例如 Win32 平台上是 \r\n

QIODevice::Unbuffered 忽略缓存