写文件:
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 忽略缓存