您的位置:首页 > 科技 > IT业 > 小游戏秒玩入口_电脑网页浏览器_爱站小工具计算器_大型网站制作

小游戏秒玩入口_电脑网页浏览器_爱站小工具计算器_大型网站制作

2025/1/8 15:27:39 来源:https://blog.csdn.net/m0_53349772/article/details/144043931  浏览:    关键词:小游戏秒玩入口_电脑网页浏览器_爱站小工具计算器_大型网站制作
小游戏秒玩入口_电脑网页浏览器_爱站小工具计算器_大型网站制作

目录

1.读文件

2.写文件及编码格式

2.1写文件

2.2编码格式

3.文件信息读取

4.文件流

4.1QTextStream

4.2QDataStream


1.读文件

需求:一个pushButton,点击之后可以选择一个txt文件的路径,路径会显示在lineEdit上,txt文件的内容会显示在textEdit上

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);connect(ui->pushButton,&QPushButton::clicked,[=]{QString filePath=QFileDialog::getOpenFileName(this,"打开文件","E:\\Qt\\File");ui->lineEdit->setText(filePath);QFile file(filePath);file.open(QIODevice::ReadOnly);QByteArray arr;arr=file.readAll();ui->textEdit->setText(arr);file.close();});
}

  1. file.open(QIODevice::ReadOnly)——读取方式QIODevice::ReadOnly或QFile::ReadOnly
  2. readAll()——将文件内容一次性全部读取
  3. readLine()——按行读取文件信息,atEnd()判断文件是否读到了尾部,如下:
//arr=file.readAll();while(!file.atEnd())
{arr += file.readLine();
}

2.写文件及编码格式

2.1写文件

    QFile file(filePath);file.open(QFileDevice::Append);file.write("你好");file.close();
  1. QFileDevice::WriteOnly会覆盖之前写的内容
  2. QFileDevice::Append会实现追加写入

2.2编码格式

Qt默认支持的编码格式是utf-8。读取其他格式的文件时,需要将文本设置为指定的格式再进行读取,如“gbk”格式。

    //文本的编码方式QTextCodec* codec=QTextCodec::codecForName("gbk");QByteArray arr;arr=file.readAll();//将文本设置为gbk编码格式ui->textEdit->setText(codec->toUnicode(arr));

3.文件信息读取

QFileInfo提供了文件名称、位置、后缀名、是否为目录等信息,可以获取文件大小、最后修改时间、读取时间

       QFileInfo info(filePath);qDebug()<<"文件名称:"<<info.fileName()<<"文件路劲:"<<info.filePath()<<"后缀名:"<<info.suffix()<<"文件大小:"<<info.size();qDebug()<<"创建日期:"<<info.created().toString("yyy-MM-dd hh:mm:ss");<<"最后修改日期:"<<info.lastModified().toString("yyy-MM-dd hh:mm:ss");

4.文件流

4.1QTextStream

处理文本数据,对Qt的字符串和I/O类进行了优化,可以使用<<或>>读写数据

【写数据】

    QFile file("C:\\Users\\zjx\\Desktop\\1.txt");file.open(QFileDevice::WriteOnly);QTextStream stream(&file);stream<<QString("123")<<123456;file.close();

【读数据】

    QFile file("C:\\Users\\zjx\\Desktop\\1.txt");file.open(QFileDevice::ReadOnly);QTextStream readStream(&file);QString arr=readStream.readAll();qDebug()<<arr;file.close();

4.2QDataStream

用于处理二进制数据,可以序列化Qt的数据类型为二进制格式,并能从二进制格式中反序列化它们,注意要按照数据类型读取数据

【写文件】

    QFile file("C:\\Users\\zjx\\Desktop\\1.txt");file.open(QFileDevice::WriteOnly);QDataStream stream(&file);stream<<QString("123")<<123456;file.close();

原因:文件是二进制的方式写入的

【读文件】

    QFile file("C:\\Users\\zjx\\Desktop\\1.txt");file.open(QFileDevice::ReadOnly);//声明数据类型,按照数据类型读取数据QString str;int num;QDataStream stream(&file);stream>>str>>num;qDebug()<<str<<num;file.close();

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com