Qt 读写二进制、txt 文件

来源:互联网 发布:我国纯网络银行有哪些 编辑:程序博客网 时间:2024/05/17 04:33

读写都用到了流,二进制用数据流 QDataStream、文本文件用文本流 QTextStream。

读写txt文件

    QFile file(filename);    if (!file.open(QIODevice::ReadWrite | QIODevice::Text))        return;    QTextStream out(&file);    QTextCodec *code = QTextCodec::codecForName("utf8");    // XML是UTF8格式    out.setCodec(code);                                     // 输出流的设置    out << content;    file.close();

读写二进制文件

void Binary::File_Func()  {      QFile file("binary.dat");      //---以 只读的方式打开,并清空原文件内容      file.open(QIODevice :: WriteOnly | QIODevice :: Truncate);      QDataStream out(&file);      //--向文件写入数据      out << QString("Qt");     //---写入:Qt      out << (QDateTime :: currentDateTime()).toString(); //---把当前时间转换成QString类型写入      file.close();                       //--关闭文件        file.setFileName("binary.dat");       //--以只读的 方式打开      if (!file.open(QIODevice::ReadOnly))          {          //--打开失败          return;      }      //----构建一个QDataStream 对象      QDataStream in(&file);      QString name;      QString time;      //---从二进制文件内读取数据保存在变量里      in >> name >> time;      //--关闭文件      file.close();                   //---用QtextEdit的对象显示文件内容      showTextEdit->setText(name +time);  } 


也可以用 按行读文件的方式,大文件用这种方式读,如pdf 文件

    QDataStream in(&file);    while(!in.atEnd()){        in.readRawData(buff, SIZE_256);        qDebug() <<  buff;    }

此外,in >> str;     和 in.readLine(SIZE_256); 都是按行读

in.readAll(); 是整体读。

参考:http://blog.csdn.net/HK_5788/article/details/42424209

0 0