QT学习-文件操作


一、文件读取

调用getOpenFileName可打开文件路径。

    QByteArray read_txt_data;
    QString read_data_string;
    QStringList read_data_stringlist;
    QByteArray read_data;
    
    QString filename = QFileDialog::getOpenFileName(this,
                                                    tr("打开文件"),
                                                    "C:/Users/82420/Desktop/",//打开文件的默认路径
                                                    tr("*ini;*INI;*dat;*txt")//打开文件的类型
                                                    );

	if (filename.length() <= 0) {
		return;
	}
    QFile file(filename);
    if (file.open(QIODevice::ReadOnly)) {

        read_txt_data = file.readAll();
        read_data_string.append(read_txt_data);//转string
        file.close();
    }
    read_data_stringlist = read_data_string.split(" ");//拆分数据

    for (quint16 i=0; i<read_data_stringlist.length(); i++) {
        read_data[i] = read_data_stringlist.at(i).toInt(&ok, 16);//转换成16进制
    }
    read_txt_data.clear();
    read_data_string.clear();
    read_data_stringlist.clear();

二、文件写入

	QString stringdata;//待写入的数据
	QString save_fileName= ui->lineEdit_save_file_name->text();//保存的文件名
	QFile filedata(save_fileName);
	filedata.open(QIODevice::ReadWrite|QIODevice::Text|QIODevice::Append);
	filedata.write(stringdata.toLocal8Bit());
	filedata.close();

三、文件清空数据

清空文件filedata可执行以下操作:

	filedata.open(QIODevice::WriteOnly|QIODevice::Truncate);
	filedata.close();

四、文件操作相关函数

1.getSaveFileName()

获取文件保存文件名,用法如下:

	QString fileName = QFileDialog::getSaveFileName(this,"保存文件","");//第三个参数为默认打开路径
	if (filename.lenth() <= 0) {
		return;
	}
    QFile file(fileName);

    if (!file.open(QIODevice::WriteOnly|QIODevice::Truncate))
    {
        QMessageBox::critical(this, "critical", tr("文件保存失败!"),
                              QMessageBox::Yes);
    }
    else
    {

        QString arr = "test";
        file.write(arr.toUtf8());
        file.close();
    }

2.getExistingDirectory()

获取文件路径,用法如下:

	QString filePath = QFileDialog::getExistingDirectory(this,"保存文件","");
	if (filePath.lenth() <= 0) {
		return;
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值