Qt - QFile类(翻译)

Posted 暗夜影

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt - QFile类(翻译)相关的知识,希望对你有一定的参考价值。

         QFile 类提供了读取文件的接口。继承于QFileDevice.

         QFile 是一种IO设备,用来读写文本和二进制文件和资源。QFile可单独使用,但和QTextStream或QDataStream一起使用更方便。

         文件名可以通过构造函数传入,但也可使用setFileName()函数随时传入。QFile使用‘/‘作为分隔符,其他分隔符(如‘\’)不支持。

         检查一个文件是否存在使用exists(),移除一个文件使用remove()。更多文件系统相关操作在QFileInfo和QDir中提供。

         文件打开使用open(),关闭使用close(),刷新flush()。数据读和写通常用QDataStream或QTextStream,但也可调用从QIODevice继承的函数read(),readLine(),readAll(),write().QFile也继承了getChar(),putChar(),和ungetChar()用于操作字符。

         文件大小通过size()返回。当前文件位置pos(),移动到新的文件位置用seek()。如果到达文件结尾,atEnd()返回true。

         下面示例按行读取文本文件:

QFile file("in.txt");

      if (!file.open(QIODevice::ReadOnly | QIODevice::Text))

          return;

 

      while (!file.atEnd()) {

          QByteArray line = file.readLine();

          process_line(line);

      }

 

         open() 传入的QIODevice::Text标志告诉Qt将Windows风格的行终止符("\r\n")转换为C++风格的终止符("\n")。 QFile默认操作二进制文件,如QFile不执行任何转换。

         下述示例使用QTextStream按行读取文本文件:

QFile file("in.txt");

      if (!file.open(QIODevice::ReadOnly | QIODevice::Text))

          return;

 

      QTextStream in(&file);

      while (!in.atEnd()) {

          QString line = in.readLine();

          process_line(line);

      }

 

QTextStram会将存储在磁盘中8位数据转换为16位的Unicode 字符串。默认地,它认为用户系统本地编码是8位(如,大多数Unix系统的UTF-8),可以通过QTextStream::setCodec()修改。

         写文本,可以使用<<()操作符。

 

以上是关于Qt - QFile类(翻译)的主要内容,如果未能解决你的问题,请参考以下文章

6.3.1 读写文本示例

Qt (C++):QFile 成功创建文本文件但不写入

在 qt 中使用 QFile.open 和 Qdir 将文件保存在特定目录中

Qt:如何打印 QFile?

Qt QFile文件读写

Qt,QFile 写入特定行