所以问题是,我正在尝试使用QFile写入文件,但出现错误:

QIODevice::write: ReadOnly device

我的实现如下:
void logList::insert(QString data) {
    QString lin;
    QFile file1("log.data");
    file1.open(QIODevice::WriteOnly | QIODevice::Text);
    QTextStream out("log.data");
    lin = out.readLine();
    out << data;
    file1.seek(30);
    file1.close();
}

我也尝试过
QIODevice::ReadWrite

对于open()


system("chmod 777 log.data");

那么,如何在Linux中读取和写入文件?

谢谢

最佳答案

QTextStream out("log.data");

带有字符串的QTextStream构造函数不会打开文件,也不会处理使用该名称打开的文件。

相反,您应该将QFile对象传递给QTextStream
QTextStream out(&file1);

此外,如果您想从文件中读取内容,则此操作将无效
file1.open(QIODevice::WriteOnly | QIODevice::Text);

您需要使用QIODevice::ReadWrite标志,而不是QIODevice::WriteOnly
最后,如果您使用QTextStream而不是QFile的读/写功能,则最好使用seek with the QTextStream 而不是QFile对象
out.seek(30);

10-06 07:49