区别:

    • 文本流不会区分两次写入数据,读的时候会一起读出来
    • 数据流会区分, 会一个个读出来

      1. Widget::Widget(QWidget *parent)
      2. : QWidget(parent)
      3. , ui(new Ui::Widget)
      4. {
      5. ui->setupUi(this);
      6. //----------------------文本流------------------------//
      7. // 写入
      8. QFile file("aaa.txt");
      9. file.open(QFileDevice::WriteOnly);
      10. QTextStream stream(&file);
      11. stream << QString("hello World") << 12356; // 注意一定要用QString包住字符串, 不然读出来是乱码
      12. file.close();
      13. // 读取
      14. file.open(QFileDevice::ReadOnly);
      15. QString str;
      16. //stream >> str; // 读取到空格就结束
      17. str = stream.readAll();
      18. qDebug() << str;
      19. //----------------------数据流------------------------//
      20. // 写入,二进制
      21. QFile file("bbb.txt");
      22. file.open(QFileDevice::WriteOnly);
      23. QDataStream stream(&file);
      24. stream << QString("hello World") << 123456; // 注意一定要用QString包住字符串, 不然读出来是乱码
      25. file.close();
      26. // 读取,二进制
      27. file.open(QFileDevice::ReadOnly);
      28. QString str;
      29. int num;
      30. stream >> str >> num; // 读取一种数据类型就结束
      31. qDebug() << str << num;
      32. }