文件 I/O 处理
QFile
QFile file("../Mytest.txt");
打开
file.open(QIODevice::ReadWrite);读写
file.write("abc", 4);关闭
file.close();
QByteArray 和 QString 区别
- QByteArray 字节数 与外部 IO 交互
- QString 字符数
QBuffer 缓存区
QBuffer buffer;
buffer.open(QIODevice::ReadWrite);
buffer.write("abc");
buffer.write("aabbcc");
buffer.close();
QBuffer 将 图片 保存在缓存区再读取
// 1. 创建 QBuffer
QBuffer buffer;
// 2. 打开缓存区 I/O 操作方式
buffer.open(QIODevice::ReadWrite);
// 3. 创建QPixmap
QPixmap pixmap("../xxx.png");
// 4. 将 pixmap 保存在 buffer
pixmap.save(&buffer,"PNG"); // IO 格式
// 5. 关闭buffer
buffer.close();
// 将缓存区的图片加载到pixmap
QPixmap pixmap_w;
pixmap_w.loadFromData(buffer.buffer(), "PNG");
QTextStream
可以将多种类型的数据组合, 相当于 echo
QFile file("../xxx.txt"); file.open(QIODevice::ReadWrite); QTextStream textstream(&file); textstream << 1 << 1.2 << "zzz"; file.close();
QDataStream
可以将多种类型的数据组合, 可以规定格式后存入取出
QFile file("../file.txt"); file.open(QIODevice::ReadWrite); QDataStream datastream(&file); int a = 0; double b =1.2; QString c = "zzz"; datastream << a << b << c;
virtual memory
QFile file("../xxx.data");
file.open(QIODevice::ReadWrite);
file.seek(65535); // 设置索引的位置 | 字符设备不处理 / 块设备处理
file.write("1");
file.close();
file.open(QIODevice::ReadWrite);
uchar* ptr = file.map(0, 64*1024);
*ptr = 'a';
ptr[3] = 'b';
file.unmap(ptr);
file.close();