所以问题是,我正在尝试使用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中的文件读取和写入?
由于
答案 0 :(得分:2)
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);