打开文件,并读取文件的内容:
void MainWindow::on_actQFile_open_triggered()
{
QString path=QDir::currentPath();
QString dlgTitle="打开一个文件";
QString filter="程序文件(*.h *.cpp);;文本文件(*.txt);;所有文件(*.*)";
QString aFileName=QFileDialog::getOpenFileName(this,dlgTitle,path,filter);
if(aFileName.isEmpty())
return;
QFileInfo fileInfo(aFileName);
QDir::setCurrent(fileInfo.absolutePath());//设置应用程序当前目录
//openByIo_Wholes(aFileName);
openByIo_Lines(aFileName);
}
bool MainWindow::openByIo_Wholes(const QString &aFileName)
{
QFile aFile(aFileName);
if(!aFile.exists())
return false; //文件不存在,退出程序
if(!aFile.open(QIODevice::ReadOnly|QIODevice::Text))
return false;
ui->textEdit_device->setPlainText(aFile.readAll());
aFile.close();
ui->tabWidget->setCurrentIndex(0);
return true;
}
bool MainWindow::openByIo_Lines(const QString &aFileName)
{
QFile aFile;
aFile.setFileName(aFileName);
if(!aFile.exists())
return false; //文件不存在,退出程序
if(!aFile.open(QIODevice::ReadOnly|QIODevice::Text))
return false;
// ui->textEdit_device->clear();
while(!aFile.atEnd())
{
QByteArray line=aFile.readLine();
QString str=QString::fromUtf8(line); //从字节数组转换为字符串,文件必须采用UTF-8编码
str.truncate(str.length()-1);//去除增加的空行
ui->textEdit_device->append(str);
}
aFile.close();
ui->tabWidget->setCurrentIndex(0);
return true;
}
保存文件的内容:
void MainWindow::on_actQFile_open_triggered()
{
QString path=QDir::currentPath();
QString dlgTitle="打开一个文件";
QString filter="程序文件(*.h *.cpp);;文本文件(*.txt);;所有文件(*.*)";
QString aFileName=QFileDialog::getOpenFileName(this,dlgTitle,path,filter);
if(aFileName.isEmpty())
return;
QFileInfo fileInfo(aFileName);
QDir::setCurrent(fileInfo.absolutePath());//设置应用程序当前目录
//openByIo_Wholes(aFileName);
openByIo_Lines(aFileName);
}
bool MainWindow::saveByIo_Wholes(const QString &aFileName)
{
QFile aFile(aFileName);
if(!aFile.exists())
return false;
if(!aFile.open(QIODevice::WriteOnly|QIODevice::Text))
return false;
QString str=ui->textEdit_device->toPlainText();//将textEdit中内容转换为普通文本,并将整个文本作为一个字符串
QByteArray strBytes=str.toUtf8();//转换为字节数组,UTF-8编码
aFile.write(strBytes,strBytes.length()); //写入文件
aFile.close();
ui->tabWidget->setCurrentIndex(0);
return true;
}