qt之读写txt

来源:互联网 发布:c语言编写程序界面 编辑:程序博客网 时间:2024/05/17 08:03

要想像c/c++那样使用cin, cout, cerr, 必须将它们先定义QTextStream对象。

    QTextStream cin(stdin, QIODevice::ReadOnly);    QTextStream cout(stdout, QIODevice::WriteOnly);    QTextStream cerr(stderr, QIODevice::WriteOnly);
正常读写txt流程:

    QFile* fileIn = new QFile(ui->lineEdit->text()); // 从控件lineEdit取文件名,利用QFile打开文件        // 通过 QFileDialog::getSaveFileName 获取保存文件名,对话框显示控件lineEdit内容,修改后即可传给fileName    QString fileName = QFileDialog::getSaveFileName(this, tr("保存文件"), ui->lineEdit->text(), tr("TXT(*.TXT)"));    QFile* fileOut = new QFile(fileName);  // 利用QFile打开文件        if(!fileIn->open(QIODevice::ReadOnly | QIODevice::Text)) //打开文件    {        cout << "fileIn Open failed!" + ui->lineEdit->text() << endl;        return -1;    }    if(!fileOut->open(QIODevice::WriteOnly | QIODevice::Text)) //打开文件    {        cout << "fileOut Open failed!" + fileName << endl;        return -1;    }    QTextStream txtInput(fileIn);  // 利用QTextStream进行读写操作    QTextStream txtOutput(fileOut);// 利用QTextStream进行读写操作    QString lineStr;    while(!txtInput.atEnd())    {        lineStr = txtInput.readLine();  // 不会包含换行符        txtOutput << lineStr.toUpper() << endl;  // 转换成大写后,写入文件    }        fileOut->close();    fileIn->close();

组装文件名技巧:

    QFileInfo fileInfo(fileName);  //fileName是包含路径的文件名,将其转换为QFileInfo类型    QString dir = fileInfo.absolutePath(); //文件路径    QString baseName = fileInfo.baseName(); //文件名    QFile mFile(dir + "/" + baseName + "/" + ".js"); // 组装文件名



0 0