QFile文件处理
- QFile类用于文件操作,它提供了读写文件的接口,可以读写文件、二进制文件和Qt资源文件。
- 处理文本文件和二进制文件,可以使用QTextStream类和QDataStream类。处理临时文件可以使用QTemporaryFile,获取信息可以使用QFileInfo,处理目录可以使用QDir,监视文件和目录变化可以使用QFileSystemWatcher.
QTextStream的流操作符
QFile QTextStream操作文件示例: 新建控制台引用程序,编辑main函数,main.cpp添加头文件:
? 文件读取
QFile file("hello.txt");
if(file.open(QIODevice::ReadOnly)){
char buffer[100];
qint32 n;
n = file.readLine(buffer, sizeof(buffer));
if(n != -1){
qDebug() << "长度:" << n << " 内容:" << buffer;
}
file.close();
}else{
qDebug() << file.errorString();
}
?
文件写入
QFile dataFile;
dataFile.setFileName("data.txt");
if(dataFile.open(QFile::WriteOnly|QFile::Truncate)){
QTextStream out(&dataFile);
out.setRealNumberPrecision(3);
out.setFieldWidth(10);
out.setFieldAlignment(QTextStream::AlignLeft);
double dPI = 3.1415926;
out << QString("数据: ")
<< dPI ;
int age = 18;
out << QString("年龄: ")
<< bin
<< age;
out << QString("年龄: ")
<< hex
<< showbase
<< age;
file.close();
}
? ? 二进制读写操作
QFile binFile("info.bat");
if(binFile.open(QFile::WriteOnly | QFile::Truncate)){
QDataStream out(&binFile);
out << QString("张三")
<< QDate::fromString("2004-02-02", "yyyy-MM-dd")
<< qint32(18);
binFile.close();
}else{
qDebug() << binFile.errorString();
}
if(binFile.open(QFile::ReadOnly)) {
QDataStream in(&binFile);
QString name;
QDate birthday;
qint32 age;
in >> name >> birthday >> age;
qDebug() << "姓名:" << name << " 出生日期:"<< birthday << " 年龄:" << age;
binFile.close();
}else{
qDebug() << binFile.errorString();
}
|