QFile
读
QString path = QFileDialog::getOpenFileName(this,"open", "../", "TXT(*.txt)");
if(path.isEmpty() == false)
{
QFile file(path);
//打开文件,只读方式
bool isOk = file.open(QIODevice::ReadOnly);
if(isOk == true)
{
#if 0 //方式1
//读文件,默认只识别utf8编码
QByteArray array = file.readAll();
//显示到编辑区
//ui->textEdit->setText(QString(array));
ui->textEdit->setText(array);
#endif //方式2 一行一行读
QByteArray array;
while( file.atEnd() == false)
{
//读一行
array += file.readLine();
}
ui->textEdit->setText(array);
}
//关闭文件
file.close();`在这里插入代码片`
}
写
QString path = QFileDialog::getSaveFileName(this, "save", "../", "TXT(*.txt)");
if(path.isEmpty() == false)
{
QFile file; //创建文件对象
//关联文件名字
file.setFileName(path);
//打开文件,只写方式
bool isOk = file.open(QIODevice::WriteOnly);
if(isOk == true)
{
//获取编辑区内容
QString str = ui->textEdit->toPlainText();
//写文件
// 1、 QString -> QByteArray
//file.write(str.toUtf8());
//2、QString -> c++ string -> char *
//file.write(str.toStdString().data());
//3、转换为本地平台编码
file.write(str.toLocal8Bit());
}
file.close();
}
Qt的一些格式转换
//1、QString -> QByteArray
QString buf = "123";
QByteArray a = buf.toUtf8(); //中文
a = buf.toLocal8Bit(); //本地编码
//2、QByteArray -> char *
char *b = a.data();
//3、char * -> QString
char *p = "abc";
QString c = QString(p);
获取文件信息
//获取文件信息
QFileInfo info(path);
qDebug() << "文件名字:" << info.fileName().toUtf8().data();
qDebug() << "文件后缀:" << info.suffix();
qDebug() << "文件大小:" << info.size();
qDebug() << "文件创建时间:" <<
info.created().toString("yyyy-MM-dd hh:mm:ss");