如何将.waitForReadyRead()保存的数据存到文件内再用readAll()读取
时间: 2024-02-21 21:56:32 浏览: 24
你可以使用`QFile`类来将`QProcess`的输出保存到文件中,然后再使用`readAll()`方法来读取文件内容。具体步骤如下:
```cpp
// 创建QFile对象并打开文件
QFile file("output.txt");
if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
qDebug() << "Failed to open file";
return;
}
// 将QProcess的输出写入文件
QTextStream out(&file);
QProcess process;
process.start("cat /sys/class/gpio/gpio23/value");
process.waitForStarted();
while (process.waitForReadyRead()) {
out << process.readAll();
}
// 关闭文件
file.close();
// 读取文件内容
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
QString result = file.readAll();
qDebug() << "Result: " << result;
file.close();
} else {
qDebug() << "Failed to open file";
}
```
这样,`QProcess`的输出就会被保存到名为`output.txt`的文件中,然后通过`readAll()`方法读取文件内容并输出到控制台。