选择文件
①包含头文件
#include <QFileDialog>
②调用对话框
方法一(推荐)
QString fileName = QfileDialog:getOpenFileName(this,"选择文件",“d:\\”);
if(fileName.isEmpty() == true)
{
QMessageBox::warning(this,"warning","select faild");
return;
}
③打开所选文件
QFile file(fileName);
if( !file.open(QFile::Readonly) )
{
QMessageBox::critical(this,"ERROR","select faild");
}
读文件
读取全部内容
QFile file(filePath);
file.open(QIODevice::ReadOnly | QIODevice::Text);
QByteArray t = file.readAll();
ui->textEdit->append(QString(t));
file.close();
读取某行内容
QTextStream stream( &file );
file.open(QIODevice::ReadOnly | QIODevice::Text);
QString line;
int n = 1;
while(!stream.atEnd())
{
line = stream.readLine(); //只能利用循环逐行读取
if(n==3)ui->textEdit->append(QString(line));
n++;
}
file.close();
添加读取信息到文本框内
ui->textEdit->append("文件路径:"+filePath);
QFileInfo info(filePath);
ui->textEdit->append(QString("文件大小:%1 byte").arg((info.size())));
ui->textEdit->append(QString("文件名称:%1").arg((info.fileName())));
ui->textEdit->append(QString("创建时间:%1").arg(info.created().toString("yyyy-MM-dd hh:mm:ss")));
ui->textEdit->append(QString("修改修建:%1").arg(info.lastModified().toString("yyyy-MM-dd hh:mm:ss")));
ui->textEdit->append(QString("-----------------分隔符-------------------"));
写操作
在原内容后添加,不覆盖
file.open(QIODevice::ReadWrite|QIODevice::Text); //以读且写的方式打开
QByteArray array=file.readAll();//读取原文件内容(必须先读出来,才不会被新内容## 标题覆盖掉)
QString str="newName"; //字符串,名字可变,这里只是举例
QTextStream out(&file); //输入流
out<<str<<"\n"; //写入内容
file.close(); //关闭文件流
会覆盖于原来内容
file.open(QIODevice::WriteOnly | QIODevice::Text);
file.write(QString("hello").toUtf8());
file.close();