Qt文件处理
Posted Respect@
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt文件处理相关的知识,希望对你有一定的参考价值。
文件处理
QFile类用于文件操作,它提供了读写文件的接口,可以读写文件、二进制文件和Qt资源文件。
处理文本文件和二进制文件,可以使用QTextStream类和QDataStream类。处理临时文件可以使用QTemporaryFile,获取信息可以使用QFileInfo,处理目录可以使用QDir,监视文件和目录变化可以使用QFileSystemWatcher.
操作符 | 作用描述 |
---|---|
bin | 设置读写的整数为 二进制数 |
oct | 设置读写的整数为 八进制数 |
dec | 设置读写的整数为十进制数 |
hex | 设置读写的整数为十六进制数 |
showbase | 强制显示进制前缀,如十六进制(0x)、八进制(0)、二进制(0b) |
forcesign | 强制显示符号(+、-) |
forcepoint | 强制显示小数点 |
noshowbase | 强制不显示前缀 |
noforcesign | 强制不显示符号 |
uppercasebase | 显示大写的进制前缀 |
lowercasebase | 显示小些的进制前缀 |
uppercasedigits | 用大写字母表示 |
lowercasedigits | 用小写字母表示 |
fixed | 固定小数点表示 |
scientific | 科学计数法表示 |
left | 左对齐 |
right | 右对齐 |
center | 居中 |
endl | 换行 |
flush | 清除缓冲 |
demo
#include <QCoreApplication>
#include <QFile>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QFile file("hello.txt");
//读取文件
if( file.open(QIODevice::ReadOnly) ){
char buffer[100];
//返回-1表失败,成功则返回读取的字节数
qint32 n;
n = file.readLine(buffer,sizeof(buffer));
if( n != -1){
qDebug() << "长度:" << n
<< "内容:" << buffer
<< endl;
file.close();
}
}else{
qDebug() << file.errorString();
}
//文件写入
double dPI = 3.1415926;
int age = 13;
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::AlignRight);
out << QString("PI:")
// << qSetRealNumberPrecision(3)//设置整数精度位数
// << qSetFieldWidth(10) //设置字段宽度
<< scientific
<< left //做对齐
<< dPI
// << hex
// << showbase
// << uppercasebase
<< age;
}
return a.exec();
}
以上是关于Qt文件处理的主要内容,如果未能解决你的问题,请参考以下文章