时间记录:2024/1/10
文件读写的一些注意点,读文件时文件名可以是相对路径,但是向文件写内容时文件名需要是绝对路径
1.文件对话框
QFileDialog
静态方法getOpenFileName弹出文件选择框,选择要打开的文件,返回打开文件的路径+文件名
2.文件操作
QFile类
常用属性:
(1)setFileName:设置要打开的文件路径+文件名
(2)open:打开文件,传入参数,打开方式只读、只写、读写、追加
(3)readxxx:读取文件内容,返回QByteArray二进制内容
(4)write:向文件中写入内容
(5)close:关闭文件并保存
3.中文编码问题解决
QTextStream/QTextCodec类
(1)QTextStream的setCodec方法指定编码
(2)QTextCodec类的静态方法codecForName来指定编码,toUnicode方法将QByteArray数据以指定编码转为QString数据
(3)写入时使用flush方法将缓存中的数据刷新进文件保存
4.文件夹操作
QDir类
常用属性
(1)setPath设置文件夹路径
(2)exists方法判断路径是否物理存在
(3)mkdir方法创建文件夹
5.设置当前项目路径为应用程序路径
cpp
QDir::setCurrent(QApplication::applicationDirPath());
6.获取随机数
(1)原始方法,qsrand和qrand方法结合获取
cpp
qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
int randNum = qrand()%9;//生成0-9之间的随机数
(2)QRandomGenerator类
cpp
QRandomGenerator::global()->bounded(10);
7.获取当前时间字符串
QDateTime/QDate/Qtime
常用属性
(1)静态方法currentDateTime获取当前日期时间
(2)toString方法将类格式化为字符串"yyyy/MM/dd HH:mm:ss"
8.读写ini配置文件
QSettings类
8.1 ini文件格式介绍
[组]
键=值
8.2 读写示例:
cpp
conf = new QSettings("./conf.ini",QSettings::IniFormat,this);//创建对象
conf->beginGroup("SQL");//设置组
conf->setValue("username","admin");//写内容
conf->setValue("password","123456");
conf->endGroup();
conf->setValue("QT/username","123");//直接向组写内容
conf->setValue("QT/password","123");
qDebug() << conf->value("QT/username").toString();//获取值
conf->beginGroup("SQL");
qDebug() << conf->value("username").toString();
conf->endGroup();
conf->sync();//同步数据到ini文件
8.3 结果
9.QString字符串转QByteArray方法的介绍
(1)toUtf8:以UTF-8编码格式转换汉字
(2)toLatin1:以ASCII编码转换汉字
(3)toLocal8Bit:以本地计算机操作系统的编码格式转换汉字,一般为GBK