在Qt中对于文件操作,利用一个例子讲明白,就说通过按钮选择一个文件并将其内容打开到文本框中,注意:需要包含对应的头文件方可执行
读文件的方式:
首先要得到这个要打开的文件的路径,先默认打开的界面是桌面,选择路径时需要判断是否选中,这个通过isEmpty这个函数进行判断,若没有选中则进行提示,这个利用QMessageBox进行提示。
但要注意的是,默认打开txt的编码格式为utf-8,否则无法打开。
//点击按钮 弹出对话框,选择文件
connect(ui->pushButton,&QPushButton::clicked,[=](){
QString filePath = QFileDialog::getOpenFileName(this,"打开文件","C:\\Users\\Administrator\\Desktop");
qDebug()<<filePath;
if(filePath.isEmpty())
{
QMessageBox::warning(this,"警告","文件路径不能为空");
return;
}
else
{
//将文件路径放入到 lineEdit中
ui->lineEdit->setText(filePath);
//将文件内容读取到 textEdit中
QFile file(filePath);
//指定打开方式
file.open(QIODevice::ReadOnly);
//Qt默认支持格式是utf-8
QByteArray array;
ui->textEdit->setText(array);
file.close();
}
若不是utf-8的格式,也可以通过更改编码格式的方式,正确打开改文件,以gbk格式为例,同时打开方式也可以按行打开,通过atEnd函数来判断是否到了文件尾。但此时也就无法打开utf-8格式的文本了,所以需要通过if-else语句来选择何种编码格式,对应何种打开方式,而编码方式可以取出文本的第一个字符来看看进行判断。
//文本编码格式类
QTextCodec * codec = QTextCodec::codecForName("gbk");
//将文件内容读取到 textEdit中
QFile file(filePath);
//指定打开方式
file.open(QIODevice::ReadOnly);
QByteArray array;
//array = file.readAll();
array = file.readLine();
while(!file.atEnd())
{
array += file.readLine();
}
ui->textEdit->setText( codec->toUnicode(array) );
file.close();
写文件的方式:
主要是通过append进行追加文本,否则将会替换打开文本中的内容
写文件
file.open(QIODevice::Append);//追加的方式写文件
file.write("啊啊啊");
file.close();
读取文本的信息:
其中最为重要的是suffix函数,它可以得到文件的后缀名,通过判断后缀名来选择打开的文件的方式。
//读取文件
QFileInfo info(filePath);
qDebug()<<"文件的后缀名:"<<info.suffix()<<"文件大小"<<info.size();
qDebug()<<"创建日期:"<<info.created().toString("yyyy-MM-dd hh:mm:ss");
版权归原作者 使劲搬砖 所有, 如有侵权,请联系我们删除。