首页 > 代码库 > Qt - QFile类(翻译)

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类(翻译)