客户网站建设完成后需要什么,织梦网站建设视频,游戏网页设计素材,wordpress教程 下载地址文本流/数据流#xff08;二级制格式#xff09;
文本流 #xff08;依赖平台#xff0c;不同平台可能乱码#xff09;涉及文件编码
#include QTextStream操作的都是基础数据类型#xff1a;int float string
//Image Qpoint QRect就不可以操作
需要下面的
…文本流/数据流二级制格式
文本流 依赖平台不同平台可能乱码涉及文件编码
#include QTextStream操作的都是基础数据类型int float string
//Image Qpoint QRect就不可以操作
需要下面的
数据流 不依赖平台—二级制不涉及文件编码 怎么读进去怎么读出来
#include QDataStream不同的主机进行数据传传输使用的就是数据流。
使用文件流操作必须注释#include
文件流操作基本和QFile相同
QTextStream
读文件直接会当作一个字符串一次性读完
//#include QFileQFile file(fileName);//指定打开方式 --有返回值bool isOk file.open(QFile::ReadOnly);if(isOk false){QMessageBox::critical(this,ERROR,File open Failed);}//读文件QTextStream stream(file);//将I/O设备给流对象stream.setCodec(utf8);//设置读取方式为utf8QString array;//读取多行 while(stream.atEnd())//判断读到最后一行{ //按照本地文件格式去读array stream.readLine();}//显示文本ui-textEdit-setText(array);QT中的乱码很恶心需要记住上面的操作
写文件
按照文本流的方式写会将将两部分连在一起 //写QFile f(aaa.txt);f.open(QFile::WriteOnly);QTextStream txt(f);//写文件txtQString(lalalla)123456;f.close();//读QString buf1;f.open(QFile::ReadOnly);txt.setDevice(f);txtbuf1;//读操作符qDebug()buf1.toUtf8().data();因此建议读文件不要使用操作符的方式去读。最好使用readLine()/readAll()的方式读取
写的时候可以用上面方式去写
QDataStream
读写的时候会把每一个数据分成一个小块会给头部记录数据类型/长度
怎么写进去怎么读出来
写 如 1234 → pig → dog123
读 1234 pig dog 123
//#include QFileQFile f(aaa.txt);//文件对象可以当作显示屏I/O设备f.open(QFile::WriteOnly);QDataStream txt(f); //写的时候会把每一个数据分成一个小块会给头部记录数据类型/长度//写文件txtQString(lalalla)123456; //运算符写入f.close();QString buf1;f.open(QFile::ReadOnly);txt.setDevice(f);txtbuf1;qDebug()buf1.toUtf8().data();输出lalala 那123456去哪了 给代码加上number 必须是int类型和下面的123456一一对应读的时候两种类型必须对应 QString buf1;int number; //给代码加上number 必须是int类型和下面的123456一一对应读的时候两种类型必须对应f.open(QFile::ReadOnly);txt.setDevice(f);txtbuf1number;qDebug()buf1.toUtf8().data()number;由于数据流方式写入是二进制格式因此直接打开文件时乱码的。 使用文本编辑器打开aaa.txt QDataStream txt(f); //对I/O设备进行操作还可以对内存进行操作。
QByteArray 可以当作一个内存块 //对内存进行操作即可操作可传输
QByteArray buff;
QImage image();
QDataStream Ds(buff,QIODevice::ReadWrite);
dsimage;//将图片写入带内存中完整代码
#include widget.h
#include ui_widget.h
//#include QFile
#include QFileDialog
#include QMessageBox
#include QPushButton
#include QTextCodec
#include QDebug
#include QTextStream
#include QDataStream
Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui-setupUi(this);connect(ui-selectFile,QPushButton::clicked,this,[](){QString fileName QFileDialog::getOpenFileName(this,openfile,);if(fileName.isEmpty() true){QMessageBox::warning(this,warning,打开失败);return;}ui-lineEdit-setText(fileName);//创建对象//默认读取文件格式utf8QFile file(fileName);//指定打开方式 --有返回值bool isOk file.open(QFile::ReadOnly);if(isOk false){QMessageBox::critical(this,ERROR,File open Failed);}//读文件QTextStream stream(file);//将I/O设备给流对象stream.setCodec(UTF-8);//设置读取方式为utf8QString array;//读取多行while(false stream.atEnd())//判断读到最后一行{array stream.readLine();//按照本地文件格式去读}//显示文本框ui-textEdit-setText(array);//文件读写完成
// char buf[55] {1111};
// file.write(buf,strlen(buf));
// file.write(QString(llala).toUtf8());
// file.write(buf);
// //关闭文件file.close();});// QFile f(aaa.txt);
// f.open(QFile::WriteOnly);
// QTextStream txt(f);
// //写文件
// txtQString(lalalla)123456;
// f.close();// QString buf1;
// f.open(QFile::ReadOnly);
// txt.setDevice(f);
// txtbuf1;
// qDebug()buf1.toUtf8().data();QFile f(aaa.txt);f.open(QFile::WriteOnly);QDataStream ds(f); //对I/O设备进行操作可以对内存进行嗯操作///写文件dsQString(lalalla)123456;f.close();QString buf1;int number;f.open(QFile::ReadOnly);ds.setDevice(f);dsbuf1number;qDebug()buf1.toUtf8().data()number;// //对内存进行操作
// QByteArray buff;
// QImage image();
// QDataStream Ds(buff,QIODevice::ReadWrite);
// dsimage;//将图片写入带内存中 }Widget::~Widget()
{delete ui;
}