您的位置:首页 > 财经 > 产业 > 制作app需要下载什么软件_广告投放平台公司_快刷网站_百度地图推广怎么收费标准

制作app需要下载什么软件_广告投放平台公司_快刷网站_百度地图推广怎么收费标准

2025/5/14 4:22:11 来源:https://blog.csdn.net/qq_62917398/article/details/147103645  浏览:    关键词:制作app需要下载什么软件_广告投放平台公司_快刷网站_百度地图推广怎么收费标准
制作app需要下载什么软件_广告投放平台公司_快刷网站_百度地图推广怎么收费标准

QT中的文件IO

  • 一、有关文件IO的类
  • 二、步骤
    • 1、定义QFile的对象,与要读写的文件绑定在一起
    • 2、打开文件
    • 3、读写文件
      • 1)读取文件
      • 2)写入文件
    • 4、关闭文件
    • 5、示例代码:
  • 三、QString和QByteArray之间的转换
    • 1、方法
    • 2、示例代码:
  • 四、QFileInfo类 --》获取文件属性
    • 1、方法
  • 五、QDir类 --》QT中的目录操作
    • 1、方法
    • 2、示例代码(与QFileInfo配合使用)

一、有关文件IO的类

QFile 表示某个文件对象
QDir 表示某个目录对象
QFileInfo 存放文件的属性信息(文件大小,文件类型等等)

二、步骤

1、定义QFile的对象,与要读写的文件绑定在一起

QFile::QFile(const QString &name)
参数:name --》需要读写的文件路径名

2、打开文件

bool QIODevice::open(OpenMode mode)返回值:成功 true  失败 false参数:QIODevice::ReadOnly    //只读QIODevice::WriteOnly   //只写QIODevice::ReadWrite   //只读写
新建文件  open(QIODevice::WriteOnly|QIODevice::Truncate)

3、读写文件

1)读取文件

qint64 QIODevice::read(char *data, qint64 maxSize)返回值:成功 返回读取的字节数  失败 -1参数:data --》保存读取的数据maxSize --》读取多少字节的数据QByteArray QIODevice::read(qint64 maxSize)返回值:读取的数据参数:maxSize --》读取多少字节的数据
QByteArray QIODevice::readAll()  //一次性读取整个文件内容,适合读取小文件
qint64 QIODevice::readLine(char *data, qint64 maxSize) //一次最多读取一行文件数据
类比:fgets

2)写入文件

qint64 QIODevice::write(const char *data, qint64 maxSize)
qint64 QIODevice::write(const QByteArray &byteArray)

4、关闭文件

void QIODevice::close()

5、示例代码:

// mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void on_pushButton_clicked();private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H// mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QFileDialog>
#include <QDebug>
#include <QMessageBox>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);
//    ui->textBrowser->setText("你好,世界aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
}MainWindow::~MainWindow()
{delete ui;
}// pushbutton 右键转到槽
void MainWindow::on_pushButton_clicked()
{QString pathName = QFileDialog::getOpenFileName(this);// 创建文件对象QFile myFile(pathName);// 打开文件bool ret = myFile.open(QIODevice::ReadWrite);if (!ret){QMessageBox::warning(this, "警告", "文件打开失败");return;}// 读取文件内容// char buf[100]={0};// myfile.read(buf,100); //读取100个字节存放到buf中// qDebug()<<"读取的内容: "<<buf;// QByteArray buf=myfile.read(100);  //读取100个字节,以返回值的形式返回// QByteArray叫做字节数组,里面的内容是16进制的形式显示// 把QByteArray转换成QString  QString(const QByteArray &ba)// QString str(buf);// qDebug()<<"读取的内容: "<<str;// 一次性读取整个文件(视频几十M以上的无法读取)QByteArray buf=myFile.readAll();//在文本浏览框中显示ui->textBrowser->setText(buf);//关闭文件myFile.close();
}

三、QString和QByteArray之间的转换

1、方法

QByteArray --》QString   自动转换,调用了构造函数
QString --》QByteArray   必须使用函数转换  QByteArray QString::toUtf8()
char * --》QString       自动转换,调用了构造函数
QString --char *       调用QString中的data()方法

2、示例代码:

// mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H// mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QByteArray>
#include <QString>
#include <QDebug>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);// 1、QByteArray --》QString   自动转换(调用了构造函数)QByteArray byteArry("你好,世界");QString str1 = byteArry;  // 跟QString str1(byteArry)等价的qDebug()<<"str1:"<<str1;  // str1: "你好,世界"// 2、QString --》QByteArray   必须使用函数转换  QByteArray QString::toUtf8()QString str2="helloworld";QByteArray array2=str2.toUtf8();qDebug()<<"array2:"<<array2;  // array2: "helloworld"// 3、char * --》QString       自动转换(调用了构造函数)char buf[10]="你好";QString str3=buf;  //跟QString str3(buf)等价的qDebug()<<"str3:"<<str3;  // str3: "你好"// 4、QString --》char *       调用QString中的data()方法QString str4="nihao";QChar *p=str4.data();qDebug() << "通过循环逐个输出字符:";for (int i = 0; p[i] != '\0'; ++i){qDebug() << p[i];}
}MainWindow::~MainWindow()
{delete ui;
}

四、QFileInfo类 --》获取文件属性

1、方法

QFileInfo::QFileInfo(const QString &file)参数:file --》文件的路径名
QString QFileInfo::filePath() const  //获取文件的路径名
bool QFileInfo::isDir() const        //判断文件是否是目录
qint64 QFileInfo::size() const       //获取文件大小
QString QFileInfo::suffix() const    //获取文件的后缀名

五、QDir类 --》QT中的目录操作

1、方法

第一步:新建QDir的对象,跟某个目录的路径绑定一起
QDir::QDir(const QString &path = QString())参数:path --》要遍历的目录的路径名
第二步:遍历目录,得到目录的文件名
QStringList QDir::entryList() const返回值:字符串列表中存放了目录中所有的文件名字

2、示例代码(与QFileInfo配合使用)

// mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void on_pushButton_clicked();private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H// mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QFileDialog>
#include <QDir>
#include <QDebug>
#include <QFileInfo>
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);
}MainWindow::~MainWindow()
{delete ui;
}// 打开目录
void MainWindow::on_pushButton_clicked()
{// 打开目录对话框QString dirpath=QFileDialog::getExistingDirectory(this,"我的目录");//qDebug()<<"选择的目录是: "<<dirpath;// 创建QDir的对象表示某个目录QDir mydir(dirpath);// 遍历目录QStringList filelist=mydir.entryList();for(auto x:filelist)qDebug()<<"选择的目录中包含了: "<<x;// 获取文件的属性QFileInfo info("C:/Users/Administrator/Desktop/vm_share/笔记/1.txt");// 获取文件大小qDebug()<<"文件大小是: "<<info.size();qDebug()<<"文件后缀名是: "<<info.suffix();}

版权声明:

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

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