Qt文件操作之文件读写

QFile类用于文件操作,它提供了读写文件的接口,可以读写文件、二进制文件和Qt资源文件。

处理文本文件和二进制文件,可以使用QTextStream类和QDataStream类。处理临时文件可以使用QTemporaryFile

文本文件:QTextStream的流操作符

操作符

作用描述

 

bin

设置读写的整数为 二进制数

 

oct

设置读写的整数为 八进制数

 

dec

设置读写的整数为十进制数

 

hex

设置读写的整数为十六进制数

 

showbase

强制显示进制前缀,如十六进制(0x)、八进制(0)、二进制(0b)

 

forcesign

强制显示符号(+、-)

 

forcepoint

强制显示小数点

 

noshowbase

强制不显示前缀

 

noforcesign

强制不显示符号

 

uppercasebase

显示大写的进制前缀

 

lowercasebase

显示小些的进制前缀

 

uppercasedigits

用大写字母表示

 

lowercasedigits

用小写字母表示

 

fixed

固定小数点表示

 

scientific

科学计数法表示

 

left

左对齐

 

right

右对齐

 

center

居中

 

endl

换行

 

flush

清除缓冲

 

读-示例代码:

    QFile file("hello.txt");

	if (file.open(QIODevice::ReadOnly))
	{
		char buffer[256];
		qint32 n = file.readLine(buffer, 256);

		if (n>-1)
		{
			qDebug()<<"长度: "
				    <

写-示例代码

    QFile data("data.txt");
	int di = 100;
	float dPI = 3.14;
	if (data.open(QIODevice::WriteOnly|QIODevice::Truncate))
	{
		QTextStream out(&data);
		out.setRealNumberPrecision(3);//设置整数精度
		out.setFieldWidth(10);
		out << di
			<< dPI;
		data.close();
	}
	else
	{
		qDebug() << data.errorString();
	}

二进制文件:QDataStream类

读-示例代码

    QFile info("info.bat");

    if (info.open(QIODevice::ReadOnly))
	{
		QDataStream in(&info);
		QString name;
		QDate date;
		
		in >> name >>date;
		qDebug() << name << " " << date;
	}
	else
	{
		qDebug() << info.errorString();
	}

写-示例代码

    QFile info("info.bat");

	//写
	if (info.open(QIODevice::WriteOnly|QIODevice::Truncate))
	{
		QDataStream out(&info);
		out << QString("孙悟空")
			<< QDate::fromString("2000-10-10", "yyyy-MM-dd");
		info.close();
	}
	else
	{
		qDebug() << info.errorString();
	}

 

你可能感兴趣的:(Qt,qt,文件读写)