Qt写入txt文件

本文介绍了一个使用Qt的应用程序如何进行文件操作的过程,包括获取应用程序路径、检查目录是否存在、创建目录、打开文件并写入特定格式的数据等步骤。
void MainWindow::on_pushButton_clicked()
{

    QDateTime da_time;
    QString time_str=da_time.currentDateTime().toString("yyyy-MM-dd HH-mm-ss");
    QString runPath = QCoreApplication::applicationFilePath();

    ui->label->setText(runPath);
    QDir *TEST = new QDir;
    bool exist = TEST->exists("TEST");
    if(!exist)
          bool ok = TEST->mkdir("TEST");
   QString fileName = "TEST/1.txt";
   QString str="0000000nnnnnnnnnnnnnnnn";
   QFile file(fileName);
   if(!file.open(QIODevice::WriteOnly  | QIODevice::Text|QIODevice::Append))
   {
      QMessageBox::warning(this,"sdf","can't open",QMessageBox::Yes);
   }
   QTextStream in(&file);
   in<<time_str+":"+str<<"\n";
   file.close();

}
Qt 中,读取和写入文本文件txt 文件)可以通过 `QFile` 和 `QTextStream` 类实现。以下是详细的方法说明: ### 读取 txt 文件 要读取一个文本文件,可以使用 `QFile` 打开文件,并通过 `QTextStream` 逐行读取内容。例如: ```cpp QFile file("input.txt"); if (!file.open(QIODevice::ReadOnly)) { qDebug() << "无法打开文件进行读取"; return; } QTextStream in(&file); while (!in.atEnd()) { QString line = in.readLine(); // 处理每一行数据 qDebug() << line; } file.close(); ``` 上述代码中,`QFile` 用于打开文件,`QTextStream` 提供了便捷的读取接口。通过 `readLine()` 方法可以逐行读取文件内容[^1]。 ### 写入 txt 文件 要将数据写入文本文件,可以使用 `QFile` 以只写模式打开文件,并通过 `QTextStream` 写入字符串内容。例如: ```cpp QFile file("output.txt"); if (!file.open(QIODevice::WriteOnly)) { qDebug() << "无法打开文件进行写入"; return; } QTextStream out(&file); out << "这是写入的第一行\n"; out << "这是写入的第二行\n"; file.close(); ``` 在上述代码中,`QTextStream` 的 `<<` 操作符用于写入字符串,`\n` 表示换行符。 ### 同时读取并写入文件 如果需要在读取文件的同时处理内容并写入另一个文件,可以结合 `QFile` 和 `QTextStream` 进行操作。例如: ```cpp void readAndWriteTxtFile(const QString &inputFilePath, const QString &outputFilePath) { QFile inputFile(inputFilePath); QFile outputFile(outputFilePath); if (!inputFile.open(QIODevice::ReadOnly)) { qDebug() << "无法打开输入文件"; return; } if (!outputFile.open(QIODevice::WriteOnly)) { qDebug() << "无法打开输出文件"; return; } QTextStream in(&inputFile); QTextStream out(&outputFile); while (!in.atEnd()) { QString line = in.readLine(); // 在这里对行进行处理,例如转换为大写 line = line.toUpper(); out << line << "\n"; } inputFile.close(); outputFile.close(); qDebug() << "成功写入!"; } ``` 该函数实现了从一个文件中读取内容、处理后再写入到另一个文件的功能。此方法适用于需要逐行处理文本文件的场景。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值