Qfile 类介绍_第1页
Qfile 类介绍_第2页
Qfile 类介绍_第3页
Qfile 类介绍_第4页
Qfile 类介绍_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

今天学习 QT 的文件操作 1 QIODevice 直接继承自 QObject QIODevice 类是输入 输出设备的基类 QIODevice 为设备提供了公共实现和抽象接口用于读写块数据 QIODevice 是一个抽象类 不能被实例化 被 Q3Socket Q3SocketDevice QAbstractSocket QBuffer QFile QLocalSocket QNetworkReply QProcess 继承 2 QFile 继承自 QIODevice QFile 类是一个操作文件的输入 输出设备 QFile 是用来读写二进制文件和文本文件的输入 输出设备 QFile 可以自己单独被使用 但是如果和 QDataStream 或 QTextStream 一起使用将更加方便 文件名通常可以通过构造函数来传递 但也可以使用 setName 来设置 目录分隔符在任何操作系统下都使用 不被支持 你可以通过 exists 来检查一个文件是否存在并且可以通过 remove 来移去一个文件 更多操作系统相关的高级文件系统操作 QT 提供了 QFileInfo 和 QDir 类 文件可以用 open 来打开 用 close 来关闭 用 flush 来刷新 数据通常可以使用 QDataStream 或者 QTextStream 进行读 写 但你也可以使用 read readLine readAll write 读写 QFile 也支持 getChar putChar 和 ungetChar size 可以返回文件的大小 你可以通过使用 pos 函数得到当前文件位置或者使用 seek 移到一个新的文件位置 如果你到了 文件的末尾 atEnd 返回真 例 1 一行一行读取文件 c sharp view plaincopy 1 include 2 include 3 include 4 include 5 int main int argc char argv 6 7 QCoreApplication a argc argv 8 中文支持 9 QTextCodec codec QTextCodec codecForName UTF 8 10 QTextCodec setCodecForCStrings codec 11 12 QFile file home administrator testdir test txt 13 if file open QIODevice ReadOnly QIODevice Text 14 qDebug Can t open the file endl 15 16 while file atEnd 17 QByteArray line file readLine 18 QString str line 19 qDebug str 20 21 return a exec 22 使用 QTextStream 读取文件 cpp view plaincopy 1 include 2 include 3 include 4 include 5 int main int argc char argv 6 7 QCoreApplication a argc argv 8 中文支持 9 QTextCodec codec QTextCodec codecForName UTF 8 10 QTextCodec setCodecForCStrings codec 11 QTextCodec setCodecForTr codec 12 QTextCodec setCodecForLocale codec 13 QFile file home administrator testdir test txt 14 if file open QIODevice ReadOnly QIODevice Text 15 qDebug Can t open the file endl 16 17 QTextStream in 18 while in atEnd 19 QString line in readLine 20 qDebug line 21 22 return a exec 23 QDataStream 重载了运算符了 读数据 cpp view plaincopy 1 include 2 include 3 include 4 include 5 int main int argc char argv 6 7 QCoreApplication a argc argv 8 中文支持 9 QTextCodec codec QTextCodec codecForName UTF 8 10 QTextCodec setCodecForCStrings codec 11 QTextCodec setCodecForTr codec 12 QTextCodec setCodecForLocale codec 13 QFile file home administrator testdir test txt 14 if file open QIODevice ReadWrite QIODevice Text 15 qDebug Can t open the file endl 16 17 QTextStream stream 18 QString line in 19 while stream atEnd 20 line in stream readLine 21 qDebug line in 22 23 stream seek stream pos 24 stream seek file size 将当前读取文件指针移动到文件末尾 25 int count 0 26 while count 10 27 stream QObject trUtf8 新建行 count n 28 29 stream seek 0 将当前读取文件指针移动到文件开始 30 while stream atEnd 31 line in stream readLine 32 qDebug line in 33 34 return a exec 35 3 QDir QDir 类提供了访问目录结构和他们的内容 QDir 类提供了访问目录结构和它们的内容的与平台无关的方式 QDir 用来操作路径名称 关于路径和文件的访问信息和操作底层文件系统 QDir 使用相对或绝对文件路径来指向一个文件 绝对路径是从目录分隔符 或者带有一个驱动器标识 除了在 Unix 下 如果你总是使用 作为目录分隔符 Qt 将会把你的路径转化为符合底层的操作系统的 相对文件名是由一个目录名称或者文 件名开始并且指定一个相对于当前路径的路径 例如绝对路径 QDir home administrator soft QDir D software 我们可以使用 isRelative 或 isAbsolute 函数确认 QDir 是用的相对路径还是绝对路径 使用 makeAbsolute 来转换相对 路径的 QDir 转换成绝对路径的 QDir c sharp view plaincopy 1 include 2 include 3 include 4 include 5 include 6 include 7 int main int argc char argv 8 9 QCoreApplication a argc argv 10 QTextCodec codec QTextCodec codecForName GB2312 11 QTextCodec setCodecForLocale codec 12 QTextCodec setCodecForCStrings codec 13 QTextCodec setCodecForTr codec 14 15 QDir d D 16 d setFilter QDir Files QDir Hidden QDir NoSymLinks QDir AllDirs 列出文件 列出隐藏文件 在 Unix 下 就是以 开始的为文件 不列出符号链接 不支持符号连接的操作系统会忽略 17 d setSorting QDir Size QDir Reversed 按文件大小排序 相反的排序顺序 18 const QFileInfoList list d entryInfoList 返回这个目录中所有目录和文件的 QFileInfo 对象的列表 19 QFileInfoList const iterator iterator list begin 20 qDebug 目录和文件的数量 d count 返回找到的目录和文件的数量 21 qDebug fileName t t tsize t t t 22 while iterator list end 23 qDebug iterator fileName t t t iterator size 24 iterator 25 26 qDebug 当前目录 d current 返回应用程序当前目录 27 qDebug 当前目录的绝对路径 d currentPath 返回应用程序当前目录的绝对路径 28 const QList list d entryList 返回这个目录中所有目录和文件的名称的列表 29 QList const iterator iterator list begin 30 while iterator list end 31 qDebug iterator 32 iterator 33 34 35 return a exec 36 运行结果 4 QFileInfo QFileInfo 类提供了一个与平台无关的文件信息 QFileInfo 提供了关于系统中的文件名称和位置 访问权限和是否是符号链接 文件大小和上次修改 读写时间等 也能被用 于 Qt 资源文件 QFileInfo 能通过相对 绝对路径指向一个文件 可以使用 isFile isDir isSymLink symLinkTarget 函数提供符号链接的目标文件 在 Unix 包括 Mac OS X 的符号链接具有与目标文件相同的大小 因为 Unix 透明地处理符号链接 同样 打开一个 符号连接使用的 QFile 有效地打开链接的目标 在 Windows 中 符号链接 快捷方式 的 lnk 文件 它大小 的是 符号链接 而不是链接的目标 的大小 打开一个 符号连接使用的 QFile 并打开 lnk 文件 例如 cpp view plaincopy 1 include 2 include 3 include 4 5 int main int argc char argv 6 7 QCoreApplication a argc argv 8 QFileInfo info1 E meego vi command lnk 9 qDebug info1 isSymLink 10 qDebug info1 absoluteFilePath 11 qDebug info1 size 12 qDebug info1 symLinkTarget 13 qDebug 14 QFileInfo info2 info1 symLinkTarget 15 qDebug info2 isSymLink 16 qDebug info2 absoluteFilePath 17 qDebug info2 size 18 19 return a exec 20 运行结果 cpp view plaincopy 1 include 2 include 3 include 4 include 5 6 int main int argc char argv 7 8 QCoreApplication a argc argv 9 10 QTextCodec codec QTextCodec codecForName GB2312 11 QTextCodec setCodecForLocale codec 12 QTextCodec setCodecForCStrings codec 13 QText

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论