Qt5:Qt文件操作类 QFile
在QT中,操作文件一般不使用C++提供的文件操作类 , 因为操作文件的时候,要用到C++提供的 string 类,而在QT中使用的是Qt自己实现的一个string类
QString 。在Qt中使用C++的string类的时候,很多时候都要在 QString 和 string 之间进行转换,这样是很不方便的,所以在Qt程序中,一般推荐操作文件的
方法是使用Qt自己实现的文件操作类 QFile 。
现在暂且先看看QFile读写文件时用到的基本函数,其他的关于创建link和设置权限等函数先撇一边
QFile的基本构造函数:
QFile(const QString & name)
QFile(QObject * parent)
QFile(const QString & name, QObject * parent)
QFile的读写:
读写的时候,该类可以使用从祖先继承的函数 read() write() readAll()等等函数
但是通常情况下, 使用下面这两个类进行读写操作
QTextStream //用于文本文件的读写操作,操作中文的时候就使用这个
QDataStream //用于二进制文件的IO操作
关于这两个文件的用法,可以查看帮助文档
下面这些函数的功能都显而易见
bool copy(const QString & newName)
bool exists() const
bool remove()
bool rename(const QString & newName)
对于下面这两个函数
bool open(FILE * fh, OpenMode mode, FileHandleFlags handleFlags = DontCloseHandle)
bool open(int fd, OpenMode mode, FileHandleFlags handleFlags = DontCloseHandle)
俩函数都是用于重新以新的标志重新打开一个已存在的文件
//这个函数的功能是用于重新设置要打开的文件
void setFileName(const QString & name)
在使用这个文件的时候,要确保没有打开的文件已经被关闭,否则,会造成泄露
还有如下等函数,功能不意义解释,同样通过命名可以看出功能
virtual bool open(OpenMode mode)
virtual Permissions permissions() const
virtual bool resize(qint64 sz)
virtual bool setPermissions(Permissions permissions)
virtual qint64 size() const
static functions
bool copy(const QString & fileName, const QString & newName)
QString decodeName(const QByteArray & localFileName)
QString decodeName(const char * localFileName)
QByteArray encodeName(const QString & fileName)
bool exists(const QString & fileName)
bool link(const QString & fileName, const QString & linkName)
Permissions permissions(const QString & fileName)
bool remove(const QString & fileName)
bool rename(const QString & oldName, const QString & newName)
bool resize(const QString & fileName, qint64 sz)
bool setPermissions(const QString & fileName, Permissions permissions)
QString symLinkTarget(const QString & fileName)
Qt5:Qt文件操作类 QFile的更多相关文章
- [C#] 常用工具类——文件操作类
/// <para> FilesUpload:工具方法:ASP.NET上传文件的方法</para> /// <para> FileExists:返回文件是否存在&l ...
- 文件操作类CFile
CFile file; CString str1= L"写入文件成功!"; wchar_t *str2; if (!file.Open(L"Hello.txt" ...
- asp.net文件操作类
/** 文件操作类 **/ #region 引用命名空间 using System; using System.Collections.Generic; using System.Text; usin ...
- android 文件操作类简易总结
android 文件操作类(参考链接) http://www.cnblogs.com/menlsh/archive/2013/04/02/2997084.html package com.androi ...
- Ini文件操作类
/// <summary> /// Ini文件操作类 /// </summary> public class Ini { // 声明INI文件的写操作函数 WritePriva ...
- java csv 文件 操作类
一个CSV文件操作类,功能比较齐全: package tool; import java.io.BufferedReader; import java.io.BufferedWriter; impor ...
- C# 文件操作类大全
C# 文件操作类大全 时间:2015-01-31 16:04:20 阅读:1724 评论:0 收藏:0 [点我收藏+] 标签: 1.创建文件夹 //usin ...
- Java文件操作类效率对比
前言 众所周知,Java中有多种针对文件的操作类,以面向字节流和字符流可分为两大类,这里以写入为例: 面向字节流的:FileOutputStream 和 BufferedOutputStream 面向 ...
- JAVA文件操作类和文件夹的操作代码示例
JAVA文件操作类和文件夹的操作代码实例,包括读取文本文件内容, 新建目录,多级目录创建,新建文件,有编码方式的文件创建, 删除文件,删除文件夹,删除指定文件夹下所有文件, 复制单个文件,复制整个文件 ...
随机推荐
- linux脚本Shell之awk详解
一.基本介绍1.awk: awk是一个强大的文本分析工具,在对文本文件的处理以及生成报表,awk是无可替代的.awk认为文本文件都是结构化的,它将每一个输入行定义为一个记录,行中的每个字符串定义为一个 ...
- spring Stack Overflow
1. ApplicationContext 不关闭,资源泄露问题: Spring ApplicationContext - Resource leak: 'context' is never clos ...
- As3.0 类的【枚举】
As3.0 类的枚举 “枚举”是您创建的一些自定义数据类型,用于封装一小组值.ActionScript 3.0 并不支持具体的枚举工具,这与 C++ 使用 enum 关键字或 Java 使用 En ...
- Java学习笔记之static
1.static可以用于修饰成员变量.方法以及块,并不会改变类中成员的权限修饰,如:private修饰的成员变量,类外只能类名或非私有方法调用,而不能使用对象名调用. 2.static方法和成员变量, ...
- 【java图形计算器】 java awt swing组件应用
package package1; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swi ...
- Android OpenGL ES(十)绘制三角形Triangle .
三角形为OpenGL ES支持的面,同样创建一个DrawTriangle Activity,定义6个顶点使用三种不同模式来绘制三角形: float vertexArray[] = { -0.8f, - ...
- 编译使用tinyxml
环境: win7 32位旗舰版,VS2010,tinyxml_2_6_2版本 1.下载tinyxml,并解压到tinyxml文件夹下 2.生成动态链接库 原生的Tinyxml只支持静态库(没有在.h文 ...
- NSUserDefault -- synchronize 浅析
NSUserDefault的使用比较简单:NSUserDefaults *mySettingData = [NSUserDefaults standardUserDefaults]; 创建NSUse ...
- Javascrpit学习之路一——基础知识
1.DOM 文档对象模型 定义:一个与系统平台和编程语言无关的接口,程序和脚本可以通过这个接口动态的访问和修改文档的内容.结构和样式. 2.Javascript 区分大小写.弱类型语言 变量小写:va ...
- mysql问题总结,远程登录
http://blog.sina.com.cn/s/blog_4550f3ca0101axzd.html 更改mysql数据库的数据库名 http://tech.sina.com.cn/s/s/200 ...