以下是 Qt 中 QFile、QSaveFile 和 QTextStream 在文件操作中的核心函数对比总结,涵盖打开、读取、写入和保存的常用方法:
1. QFile(基础文件操作)
核心函数
| 操作 |
函数/代码示例 |
说明 |
| 打开文件 |
open(QIODevice::ReadOnly) |
支持多种模式:ReadOnly、WriteOnly、ReadWrite、Text(自动转换换行符) |
| 读取文件 |
readAll() / read(qint64 maxSize) |
返回 QByteArray,适合二进制或小文件 |
|
readLine() |
逐行读取(需循环判断 atEnd()) |
| 写入文件 |
write(const QByteArray &data) |
直接写入二进制数据 |
|
write(const char *data, qint64 len) |
写入原始字节 |
| 关闭文件 |
close() |
显式关闭或依赖析构函数自动关闭 |
特点
- 灵活性高:支持二进制和文本模式。
- 无原子性保证:写入中途崩溃可能导致文件损坏。
2. QSaveFile(安全写入)
核心函数
| 操作 |
函数/代码示例 |
说明 |
| 打开文件 |
open(QIODevice::WriteOnly) |
必须为写入模式,默认启用原子写入 |
| 写入文件 |
write()(同 QFile) |
数据先写入临时文件 |
| 提交保存 |
commit() |
成功时替换原文件,失败则回滚 |
| 取消写入 |
cancelWriting() |
放弃写入,删除临时文件 |
特点
- 原子性操作:避免写入中断导致文件损坏。
- 仅限写入:不可用于读取或读写混合场景。
3. QTextStream(文本流处理)
核心函数
| 操作 |
函数/代码示例 |
说明 |
| 绑定文件 |
QTextStream(&file) |
需先通过 QFile 或 QSaveFile 打开文件 |
|