Qt 通过QIODevice提供了对 I/O 设备的抽象,这些设备具有读写字节块的能力,下面是 I/O 设备的类图:

QFile提供了从文件中读取和写入数据的能力,通常会将文件路径作为参数传给QFile的构造函数,也可以在创建好对象最后,使用setFileName()来修改。可以使用QDataStream或QTextStream类来读写文件,也可以使用QIODevice类提供的read()、readLine()、readAll()以及write()这样的函数
注意:有关文件本身的信息,比如文件名、文件所在目录的名字等,则是通过QFileInfo获取

MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
//点击选取文件按钮 弹出文件对话框
connect(ui->pushButton,&QPushButton::clicked,[=](){
//弹出文件对话框 第一个参数:父类指针 第二个参数:对话框标题 第三个参数:默认路径
QString file_path =QFileDialog::getOpenFileName(this,"打开文件","Z:");
//将选取的文件路径放入到lineEdit中 =>放到文本框当中
ui->lineEdit->setText(file_path);
//将文件的内容读取到textEdit当中
QFile file(file_path); //参数:需要文件的路径
file.open(QIODevice::ReadOnly);//指定打开方式
//方法1:一次读取所有的内容
//QByteArray array = file.readAll();
//ui->textEdit->setText(array);//将读取到的数据 放入textEdit中
//方法2:按行读取
QByteArray array;
while( !file.atEnd())
{
array += file.readLine(); //按行读 追加到array
}
ui->textEdit->setText(array);//将读取到的数据 放入textEdit中
//关闭文件对象
file.close();
});
}

file.open(QIODevice::Append); //用追加方式进行写
file.write("啊啊啊啊啊");
file.close();
//QFileInfo 文件信息类
QFileInfo info(file_path);
//size返回的是字节数
qDebug() << "大小:" << info.size() << " 后缀名:" << info.suffix() << " 文件名称:"<<info.fileName() << " 文件路径:"<< info.filePath();
qDebug() << "创建日期:" << info.created().toString("yyyy/MM/dd hh:mm:ss");
qDebug() << "最后修改日期:"<<info.lastModified().toString("yyyy-MM-dd hh:mm:ss");