所以问题是,我正在尝试使用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);