qt文件读写

文本文件读写

1.QFile类的IODevice直接读写

2.QFile和QTextStream结合,用流的方式读写

重点函数

1.QFile(const QString &name);   //得到QFile对象
2.bool open(OpenMode flags) Q_DECL_OVERRIDE;  //打开文件
3.读函数 
QByteArray read(qint64 maxlen);  
QByteArray readAll();    
QByteArray readLine(qint64 maxlen = 0); 
4.写函数   ,由于没有直接写行的函数,需要自己谢“\n”,用来换行
qint64 write(const char *data);    
inline qint64 write(const QByteArray &data)   
5.关闭:
virtual void close() Q_DECL_OVERRIDE;

 流的方式

QFile aFile(aFileName);

bool open(OpenMode flags) Q_DECL_OVERRIDE; //打开文件

QTextStream aStream(&aFile); //用文本流读取文件

写函数: <<     由于没有直接写行的函数,需要自己谢“\n”,用来换行

读函数:

QString readLine(qint64 maxlen = 0);
QString readAll();
QString read(qint64 maxlen);

解决汉字乱码问题
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForLocale(codec); //解决汉字乱码问题

	QFile file("style.qss");
	file.open(QFile::ReadOnly);
	QString stylesheet = QString::fromLatin1(file.readAll());
	this->setStyleSheet(stylesheet);

二进制文件读写:

有两种格式文件:stm(qt预定义编码文件) 和bat(标准编码文件)

使用QFile 和 QDatastream 进行读写。 

stm(qt预定义编码文件):

QDataStream aStream(&aFile);//操作和使用QTextStream 一样的,只是在读取时只能用运算操作符“ >>”

函数:

1.inline void QDataStream::setVersion(int v)  //流的版本号,qt预定义编码文件需要设置版本号

2.写函数  <<       //不管是什么数据类型

3.读函数   >>

标准编码文件

标准编码文件无须指定QDataStream版本,但可以有必要指定字节序。

void setByteOrder(ByteOrder); //设置字节序函数 ,在x86电脑都是小端字节序

写函数:

QDataStream &writeBytes(const char *, uint len); //用于字符串数据,因为写入字符串之前会先写入字符串的长度
int writeRawData(const char *, int len); //不会写入长度

读函数:

QDataStream &readBytes(char *&, uint &len);
int readRawData(char *, int len);

QCoreApplication 
是所有的应用程序类的基类,用于提取应用文件的名称、路径等

其QCoreApplication 子类QGuiApplication 是GUI界面的应用程序提供流控制等

QGuiApplication 的子类 QApplication 是基于qwidget 提供支持,包括界面初始化

static QString applicationDirPath();
static QString applicationFilePath();

static QString applicationName();

static QStringList libraryPaths();

QFile 除了打开关闭文件、读写文件外,还有复制、删除文件的功能
删除:
bool remove();    
static bool remove(const QString &fileName);

复制:

bool copy(const QString &newName);

static bool copy(const QString &fileName, const QString &newName);

文件是否存在

bool exists() const;

static bool exists(const QString &fileName);

文件大小

qint64 size() const Q_DECL_OVERRIDE;

QFileInfo 提取文件的信息,包括路径、文件名、后缀
 QString filePath() const;   
 QString absoluteFilePath() const;   
 QString canonicalFilePath() const;   
 QString fileName() const;    
QString baseName() const;  
  QString completeBaseName() const;    
QString suffix() const;   
 QString bundleName() const;   
QString completeSuffix() const;  
  QString path() const;   
 QString absolutePath() const;   
 QString canonicalPath() const;    
QDir dir() const;    
QDir absoluteDir() const;
QDir :用于提取目录或文件信息,获取目录下的文件或目录列表,创建、删除目录
static inline QDir home() { return QDir(homePath()); }   
 static QString homePath();   
 static inline QDir root() { return QDir(rootPath()); }    
static QString rootPath(); 
 bool exists() const;   
 bool isRoot() const;
QStringList entryList(Filters filters = NoFilter, SortFlags sort = NoSort) const;   //获取目录下的目录或文件
QStringList entryList(const QStringList &nameFilters, Filters filters = NoFilter, SortFlags sort = NoSort) const;

QFileSystemWatcher   对目录或文件监听的类

bool addPath(const QString &file);    
QStringList addPaths(const QStringList &files);    
bool removePath(const QString &file);   
 QStringList removePaths(const QStringList &files);   
 QStringList files() const;    
QStringList directories() const;   

信号:
void fileChanged(const QString &path, QPrivateSignal);  
void directoryChanged(const QString &path, QPrivateSignal);


 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值