qfile获取文件第一行

qfile获取文件第一行,第1张

表 5 QDataStream常用方法

成员方法 功 能

bool QDataStream::atEnd() const 判断是否读到文件末尾,如果已经达到末尾,返回 true,否则返回 false。

QDataStream &QDataStream::readBytes(char *&s, uint &l) 对于用 writeBytes() 方法写入文件的 l 和 s,只能使用 readBytes() 方法读取出来。

int QDataStream::readRawData(char *s, int len) 从文件中读取最多 len 字节的数据到 s 中,返回猜喊值表示实际读取的字节数。注意,调用该方法之前,需要先给 s 参数分配好内存空间。

void QDataStream::setVersion(int v) 不同版本的 Qt 中,同名称的数据类型也可能存在差异,通过调用此方法手动指定版本号,可以确保读取数据的一致性。

int QDataStream::skipRawData(int len) 跳过文件中的 len 个字节,返回实际跳过的字节数。

QDataStream &QDataStream::writeBytes(const char *s, uint len) 将长度 len 和 s 一起写入到文件中,对于 writeBytes() 写入的数据,只能用 readBytes() 方法读取。

int QDataStream::writeRawData(const char *s, int len) 将 s 中前 len 字节的数据写入文件,返回值表示成功写入的字节数。

QDataStream 类也对<<和>>进行了重载,举个简单的例子,用 QDataStream 重新实现实例二:

#include <QFile>

#include <QDebug>

#include <QDataStream>

int main(int argc, char *argv[])

{

//指孝困定要写入文件的数据

qint32 nums[5]={1,2,3,4,5}

QFile file("D:/demo.dat")

file.open(QIODevice::WriteOnly)

//创建 QDataStream 对象

QDataStream out(&file)

//将 nums 数组中的整数逐个写入到二进制文件中

for(int i=0i<巧兆念5i++){

out <<nums[i]

}

file.close()

//再次打开文件,读取文件中存储的二进制数据

file.open(QIODevice::ReadOnly)

QDataStream in(&file)

//读取二进制文件中的数据

while(!in.atEnd()){

//每次读取一个整数

qint32 num

in >>num

qDebug() <<num

}

return 0

}

这是声明的QDataStream的对象,代码自己声明的,并不是预定义的。谈雹

它是一个流对象,你可以查看QDataStream的文档,继承自QIODevice,QDataStreamout(&block,QIODevice::WriteOnly)

这一句声明了out是一个QDataStream对象,将声明QByteArray的实例block最为存储缓冲区,模式为只写。烂侍信同样你去看代码in是一个只读流,将socket中的数据读出来的功能。in>>的意思是读出到blocksize中。和iostream很像,out和in都和网络饥轮模块没任何关系。

可以用 QTextStream 来打饥轿磨开txt具体写法

QFile data("output.txt")//先构建一个QFile

if (data.open(QFile::WriteOnly)) //将file以只写方式打开

{

QTextStream out(&data)//如果QFile打帆渗开成功,再用QFile构建一个QTextStream

out <<"Result: " <<qSetFieldWidth(10) <<left <<3.14 <<2.7

// 写入 "Result: 3.14 2.7 "

}

//如果你要读取文件记得将打开属性改为QFile::ReadOnly或QFile::ReadWrite

//用readLind()函烂斗数.或read()函数,或>>符号可以读取文件内能.用atEnd()判断文件是否结尾

另外用QDataStream配合QIODevice同样可以高效读取txt文件.方法同QTextStream差不多.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12169591.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存