在Qt中對(duì)于文件操作,利用一個(gè)例子講明白,就說(shuō)通過(guò)按鈕選擇一個(gè)文件并將其內(nèi)容打開(kāi)到文本框中,注意:需要包含對(duì)應(yīng)的頭文件方可執(zhí)行
讀文件的方式:
首先要得到這個(gè)要打開(kāi)的文件的路徑,先默認(rèn)打開(kāi)的界面是桌面,選擇路徑時(shí)需要判斷是否選中,這個(gè)通過(guò)isEmpty這個(gè)函數(shù)進(jìn)行判斷,若沒(méi)有選中則進(jìn)行提示,這個(gè)利用QMessageBox進(jìn)行提示。
但要注意的是,默認(rèn)打開(kāi)txt的編碼格式為utf-8,否則無(wú)法打開(kāi)。
?
//點(diǎn)擊按鈕 彈出對(duì)話框,選擇文件
connect(ui->pushButton,&QPushButton::clicked,[=](){
QString filePath = QFileDialog::getOpenFileName(this,"打開(kāi)文件","C:\\Users\\Administrator\\Desktop");
qDebug()<<filePath;
if(filePath.isEmpty())
{
QMessageBox::warning(this,"警告","文件路徑不能為空");
return;
}
else
{
//將文件路徑放入到 lineEdit中
ui->lineEdit->setText(filePath);
//將文件內(nèi)容讀取到 textEdit中
QFile file(filePath);
//指定打開(kāi)方式
file.open(QIODevice::ReadOnly);
//Qt默認(rèn)支持格式是utf-8
QByteArray array;
ui->textEdit->setText(array);
file.close();
}
若不是utf-8的格式,也可以通過(guò)更改編碼格式的方式,正確打開(kāi)改文件,以gbk格式為例,同時(shí)打開(kāi)方式也可以按行打開(kāi),通過(guò)atEnd函數(shù)來(lái)判斷是否到了文件尾。但此時(shí)也就無(wú)法打開(kāi)utf-8格式的文本了,所以需要通過(guò)if-else語(yǔ)句來(lái)選擇何種編碼格式,對(duì)應(yīng)何種打開(kāi)方式,而編碼方式可以取出文本的第一個(gè)字符來(lái)看看進(jìn)行判斷。
//文本編碼格式類
QTextCodec * codec = QTextCodec::codecForName("gbk");
//將文件內(nèi)容讀取到 textEdit中
QFile file(filePath);
//指定打開(kāi)方式
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();
寫文件的方式:
主要是通過(guò)append進(jìn)行追加文本,否則將會(huì)替換打開(kāi)文本中的內(nèi)容
寫文件
file.open(QIODevice::Append);//追加的方式寫文件
file.write("啊啊啊");
file.close();
讀取文本的信息:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-517742.html
其中最為重要的是suffix函數(shù),它可以得到文件的后綴名,通過(guò)判斷后綴名來(lái)選擇打開(kāi)的文件的方式。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-517742.html
//讀取文件
QFileInfo info(filePath);
qDebug()<<"文件的后綴名:"<<info.suffix()<<"文件大小"<<info.size();
qDebug()<<"創(chuàng)建日期:"<<info.created().toString("yyyy-MM-dd hh:mm:ss");
到了這里,關(guān)于Qt--文件操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!