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;
}

你可能感兴趣的:(QT编程学习,qt,开发语言)