Qt打开一个文件进行读写完整代码

打开文件,并读取文件的内容: 

void MainWindow::on_actQFile_open_triggered()
{
    QString path=QDir::currentPath();
    QString dlgTitle="打开一个文件";
    QString filter="程序文件(*.h *.cpp);;文本文件(*.txt);;所有文件(*.*)";
    QString aFileName=QFileDialog::getOpenFileName(this,dlgTitle,path,filter);
    if(aFileName.isEmpty())
        return;
    QFileInfo fileInfo(aFileName);
    QDir::setCurrent(fileInfo.absolutePath());//设置应用程序当前目录
    //openByIo_Wholes(aFileName);
    openByIo_Lines(aFileName);
}
bool MainWindow::openByIo_Wholes(const QString &aFileName)
{
    QFile aFile(aFileName);
    if(!aFile.exists())
        return false;   //文件不存在,退出程序
    if(!aFile.open(QIODevice::ReadOnly|QIODevice::Text))
        return false;
    ui->textEdit_device->setPlainText(aFile.readAll());
    aFile.close();
    ui->tabWidget->setCurrentIndex(0);
    return true;
}

bool MainWindow::openByIo_Lines(const QString &aFileName)
{
    QFile aFile;
    aFile.setFileName(aFileName);
    if(!aFile.exists())
        return false;   //文件不存在,退出程序
    if(!aFile.open(QIODevice::ReadOnly|QIODevice::Text))
        return false;
    //    ui->textEdit_device->clear();
    while(!aFile.atEnd())
    {
        QByteArray line=aFile.readLine();
        QString str=QString::fromUtf8(line);    //从字节数组转换为字符串,文件必须采用UTF-8编码
        str.truncate(str.length()-1);//去除增加的空行
        ui->textEdit_device->append(str);
    }
    aFile.close();
    ui->tabWidget->setCurrentIndex(0);
    return true;
}

保存文件的内容:

void MainWindow::on_actQFile_open_triggered()
{
    QString path=QDir::currentPath();
    QString dlgTitle="打开一个文件";
    QString filter="程序文件(*.h *.cpp);;文本文件(*.txt);;所有文件(*.*)";
    QString aFileName=QFileDialog::getOpenFileName(this,dlgTitle,path,filter);
    if(aFileName.isEmpty())
        return;
    QFileInfo fileInfo(aFileName);
    QDir::setCurrent(fileInfo.absolutePath());//设置应用程序当前目录
    //openByIo_Wholes(aFileName);
    openByIo_Lines(aFileName);
}

bool MainWindow::saveByIo_Wholes(const QString &aFileName)
{
    QFile aFile(aFileName);
    if(!aFile.exists())
        return false;
    if(!aFile.open(QIODevice::WriteOnly|QIODevice::Text))
        return false;
    QString str=ui->textEdit_device->toPlainText();//将textEdit中内容转换为普通文本,并将整个文本作为一个字符串
    QByteArray strBytes=str.toUtf8();//转换为字节数组,UTF-8编码
    aFile.write(strBytes,strBytes.length());    //写入文件
    aFile.close();
    ui->tabWidget->setCurrentIndex(0);
    return true;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值