Qt提供了多个类对文件进行不同的 *** 作。
1.QFileDialog类
常用的有如下函数:
QFileDialog::getOpenFileName() //获取指定文件路径名返回QString QFileDialog::getExistingDirectory() //获取指定路径返回QString QFileDialog::getSaveFileName() //获取指定保存路径名返回QString
2.QFile类
分为文本文件和数据文件的 *** 作,主要的函数有
qint64 read( char * data, qint64 maxSize) //数据流读取 QByteArray read( qint64 maxSize) //文本流方式读取 QByteArray readAll() //文本流方式读取 QByteArray readLine()//文本流方式读取 qint64 write(const char * data, qint64 maxSize) qint64 write(const QByteArray & byteArray)
示例:
// 1.read读数据 Qfile file(文件名); if(file.open(QIODevice::ReadOnly)) { QByteArray ba = file.readAll();//读出全部数据 } else { cout << "打开文件失败" ; } file.close(); // 2.write写数据到文件中 QByteArray ba; QFile file(文件名); if(file.open(QIODevice::WriteOnly)) { file.write(ba); } else { cout << "打开文件失败"; } file.close();
3. QTextStream类
QTextStream可将写入的数据全部转化为可读文本
向文件中写入文本信息:
QFile f("F:/Test.txt"); f.open(QIODevice::ReadWrite|QIODevice::Append|QIODevice::Text); QTextStream out(&f); out << QString("log11111") << endl; f.close();
4. QDataStream类
QDataStream可将写入的数据根据类型转换为二进制数据;
QDataStream data; int a; QString str; data >> a >> b;//将数据存在流中 data << a << b;//从流中取出数据
5. QTemporaryFile类
QTemporaryFile是临时文件 *** 作,创建全局唯一的临时文件,常用于大数据传递或者进程间通信场合。
6. QBuffer类
QBuffer为类QByteArray提供QIODevice接口;QBuffer缓冲区写入和读取的数据必须是同一种数据类型,不能混合多种数据类型;
QBuffer的使用场合:
线程间不同类型的数据传递;
缓存外部设备中的数据返回;
数据读取速度小于写入速度;
7. QFileSystemWatcher类
预定义了用于监控文件和目录变化的类QFileSystemWatcher,功能:
监控特定目录和文件的状态;
同时对多个文件和目录进行监控;
当目录或文件发生改变时触发信号;
通过信号与槽的机制捕捉信号并作出响应;
8. QFileInfo类
用于获取文件的信息。使用示例:
QFile file(文件名); QFileInfo fileInfo(file); QString strFilePath = fileInfo.absoluteFilePath();//完整路径 E:Test PictureTest3.raw strFilePath = fileInfo.absolutePath();//完整目录 E:Test PictureTest strFilePath = fileInfo.baseName();//不带后缀的文件名 3 strFilePath = fileInfo.bundleName();//在Mac和IOS平台上返回包的路径,其它平台返回空字符串 strFilePath = fileInfo.canonicalFilePath();//返回一个包含文件名的规范路径? E:Test PictureTest3.raw strFilePath = fileInfo.canonicalPath();//返回不包含文件名的规范路径 E:Test PictureTest strFilePath = fileInfo.completebaseName();//返回文件的名字,只是文件的名字,不包含路径和后缀 3 strFilePath = fileInfo.completeSuffix();//返回文件的完整后缀,不包含. raw bool bExist = fileInfo.exists(); strFilePath = fileInfo.fileName();//返回文件的名字,包含后缀 3.raw strFilePath = fileInfo.filePath();//返回文件路径以及包含后缀的文件名 E:Test PictureTest3.raw iN = fileInfo.size(); //文件的大小 strFilePath = fileInfo.suffix();//返回文件的最后一个后缀
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)