Qt文件操作之文件读写

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

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

文本文件:QTextStream的流操作符

操作符

作用描述

bin

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

oct

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

扫描二维码关注公众号,回复: 13570024 查看本文章

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()<<"长度: "
				    <<n
			     	<< "内容: "
				    << buffer;
		}
		file.close();
	}
	else
	{
		qDebug() << file.errorString();
	}

写-示例代码

    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();
	}

猜你喜欢

转载自blog.csdn.net/weixin_40582034/article/details/117532252
今日推荐