QT5入门之18 -文件读写
2015-10-27 15:07
435 查看
文件读写主要使用类QFile,它可以用来读写二进制文件或文本文件。
QFile可以自己单独被使用,但是和QDataStream或QTextStream一起使用将更加方便。
1.读文件
2.写文件
3.
其他方法:
exists() 来检查一个文件是否存。
remove()来移去一个文件。
size() 可以返回文件的大小。
4.打开方式:
枚举值 描述
QIODevice::NotOpen 未打开
QIODevice::ReadOnly 以只读方式打开
QIODevice::WriteOnly 以只写方式打开
QIODevice::ReadWrite 以读写方式打开
QIODevice::Append 以追加的方式打开,新增加的内容将被追加到文件末尾
QIODevice::Truncate 以重写的方式打开,在写入新的数据时会将游标设置在文件开头
QIODevice::Text 在读取时,将行结束符转换成 \n;在写入时,将行结束符转换成本地格式,例如 Win32 平台上是 \r\n
QIODevice::Unbuffered 忽略缓存
QFile可以自己单独被使用,但是和QDataStream或QTextStream一起使用将更加方便。
1.读文件
#include <QFile> QStringList lines; QFile file( "d:\\1.txt" ); QTextCodec::setCodecForLocale(QTextCodec::codecForName("gb2312"));//中文转码声明 if ( file.open( QIODevice::ReadOnly ) ) {//只读方式 QTextStream stream( &file ); QString line; int n = 1; while ( !stream.atEnd() ) { line = stream.readLine(); // 一行一行读取,不包括“/n”的一行文本,也可以用readAll()全部读取 qDebug()<< line.toUtf8(); //输出到“应用程序输出”窗口。 n++; lines += line; } file.close(); }
2.写文件
QStringList lines; lines.append("123"); lines.append("456"); lines.append("烤鸭"); QFile file( "d:\\1.txt" ); if ( file.open( QIODevice::WriteOnly ) ) {//只读模式 QTextStream stream( &file ); for (auto it = lines.begin(); it != lines.end(); ++it ) stream << *it << "\r\n"; file.close(); }
3.
其他方法:
exists() 来检查一个文件是否存。
remove()来移去一个文件。
size() 可以返回文件的大小。
if(file.exists()){ QMessageBox::warning(this, tr("test"), tr("file exists.")); int i = file.size(); file.remove(); }
4.打开方式:
枚举值 描述
QIODevice::NotOpen 未打开
QIODevice::ReadOnly 以只读方式打开
QIODevice::WriteOnly 以只写方式打开
QIODevice::ReadWrite 以读写方式打开
QIODevice::Append 以追加的方式打开,新增加的内容将被追加到文件末尾
QIODevice::Truncate 以重写的方式打开,在写入新的数据时会将游标设置在文件开头
QIODevice::Text 在读取时,将行结束符转换成 \n;在写入时,将行结束符转换成本地格式,例如 Win32 平台上是 \r\n
QIODevice::Unbuffered 忽略缓存
相关文章推荐
- QThread 的使用方法 注意事项
- QT5入门之17 - 文件选择对话框
- win7 32bit 用qmake编译qt程序
- QT5入门之16 - 设置按钮提示
- QT5入门之15 - qr函数
- qtp传参的注意要点,及小技巧
- qt中某个类的头文件无法找到
- qt环境变量配置
- Qt QLabel::setBuddy函数
- Qt使用教程之创建一个基于Qt部件的应用程序(一)
- Qt concurrent run()函数使用
- Qt之无边框自定义最小化、关闭按钮并实现窗口移动
- Qt::WA_StaticContents的作用
- QT程序Release后无法连接数据库的问题
- qt5和opencv3在linux上安装配置
- There's no Qt version assigned to this project for platform x64. Please use the 'change Qt version
- Qt中 QGLWidget碰到no such file or directory的解决办法
- Qt之四方分割器QuadSplitter
- Qt5+VS2013兼容XP方法
- 学习Qt之简单计算器