二进制文件比较小巧,但是不是人可读的格式。文本文件是一种人可读的格式的文件,为了操作这种文件,我们需要使用QTextStream类。QTextStream和QDataStream的使用类似,只不过它是操作纯文本文件的。还有一些文本格式,比如XML、HTML,虽然可以由QTextStream生成,但Qt提供了更方便的XML操作类,这里就不包括这部分内容了。
QTextStream会自动将 Unicode 编码同操作系统的编码进行转换,这一操作对程序员是透明的。它也会将换行符进行转换,同样不需要你自己去处理。QTextStream使用16位的QChar作为基础的数据存储单位,同样,它也支持C++标准类型,如int等。实际上,这是将这种标准类型与字符串进行了相互转换。
QTextStream同QDataStream使用基本一致,例如下面的代码将把“Thomas M. Disch: 334/n”写入到 tmp.txt 文件中:
- QFile file("sf-book.txt");
- if (!file.open(QIODevice::WriteOnly)) {
- std::cerr << "Cannot open file for writing: "
- << qPrintable(file.errorString()) << std::endl;
- return