文本流和数据流

Qt里面将文件分为两大类

1.文件内容是可读的文本文件

2.文件内容是直接的二进制文件

 

QTextStream :

写入的数据全部转换为可读文本

QDataStream:

写入的数据全部转换为二进制数据

 

//直接读写

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

{

    QCoreApplication a(argc, argv);

    QFile file("C:/Users/hp/Desktop/test.hex");

 

    if( file.open(QIODevice::WriteOnly) )

    {

        QString dt = "D.T.Software";

        double value = 3.14;

 

        file.write(dt.toStdString().c_str());

        file.write(reinterpret_cast<char*>(&value), sizeof(value));

 

        file.close();

    }

 

    if( file.open(QIODevice::ReadOnly) )

    {

        QString dt = "";

        double value = 0;

 

        dt = QString(file.read(12));

        file.read(reinterpret_cast<char*>(&value), sizeof(value));

 

        file.close();

 

        qDebug() << dt;

        qDebug() << value;

    }

    

    return a.exec();

}

 

void text_stream_test(QString s)   //文本文件读写

{

    QFile file(s);

 

    if( file.open(QIODevice::WriteOnly | QIODevice::Text) )

    {

        QTextStream out(&file);

        QString by = "BadogYang";

        double value = 3.14;

 

        out << by << endl;

        out << value << endl;

 

        file.close();

    }

 

    if( file.open(QIODevice::ReadOnly | QIODevice::Text) )

    {

        QTextStream in(&file);

 

        while( !in.atEnd() )     //文本文件输出方式

        {

            QString line = in.readLine();

 

            qDebug() << line;

        }

 

        file.close();

    }

}

 

void data_stream_test(QString s)    //数据文件读写

{

    QFile file(s);

 

    if( file.open(QIODevice::WriteOnly) )

    {

        QDataStream out(&file);

        QString by = "BadogYang";

        double value = 3.14;

 

        out << by;

        out << value;

 

        file.close();

    }

 

    if( file.open(QIODevice::ReadOnly) )

    {

        QDataStream in(&file);

 

        QString by = "";

        double value = 0;

 

        in >> by;

        in >> value;

 

        qDebug() << by;

        qDebug() << value;

 

        file.close();

    }

}

 

不同的qt版本默认数据文件处理方式可能不同,我们可以设置qt的读写版本号,需要设置的情况多是不同Qt程序之间的数据传递

void setVersion(int v) //设置读写版本号

int version() const //返回版本信息

 

//文章参考狄泰软件学院Qt视频教程

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
摘要:NTFS是Microsoft公司开发的一种有着良好安全性和稳定性的高性能文件系统,NTFS的文件或文件夹中附加多个额外的数据流,但是其访问一直没有很好的解决办法,本文使用VB2003实现NTFS文件附加数据流的读写类,提供.Net框架下NTFS文件附加数据流的完整解决方案。 关键词:VB.Net NTFS 数据流 类 在项目中选择添加引用->浏览->选择“JWBStreamOP.dll”文件->确定,即可成功引用。 4.1 类的声明: Dim myStreamOP As New ClassJWBStreamOP(“NTFS文件完整路径”) 4.2 属性: 该类共有3个只读属性 属性名 返回值类型 备注 FileName String 只读,在成功声明后使用 Ready Boolean 只读,该类可操作时为True Ver String 只读,类版本、版权信息 4.3 方法 该类共有6个方法: 4.3.1 OpenNTFSStream(ByVal sStreamName As String) As System.IO.FileStream 打开指定文件(声明时指定)的指定数据流,返回值为指定数据流的FileStream接口。 参数列表 类型 传递方式 参数说明 sStreamName String Byval 文件名 4.3.2 GetNTFSStreamSize(ByVal sStreamName As String) As Long 获取指定数据流的大小,返回实际大小,执行失败返回-1 参数列表 类型 传递方式 参数说明 sStreamName String Byval 文件名 4.3.3 AddNTFSStream(ByVal toHidName As String, ByRef percentDone As Double) As Boolean 添加附加数据流,返回执行结果。 参数列表 类型 传递方式 参数说明 toHidName String ByVal 待添加的文件路径 percentDone Double ByRef 传递一个完成百分比的参数 4.3.4 SaveNTFSStream(ByVal sStreamName As String, ByVal outFileName As String, ByRef percentDone As Double) As Boolean将指定的数据流保存为文件,返回执行结果。 参数列表 类型 传递方式 参数说明 sStreamName String ByVal 文件名 outFileName String ByVal 保存文件路径 percentDone Double ByRef 传递一个完成百分比的参数 4.3.5 ReadNTFSStreamsName() As String() 获取文件的所有附加数据流名称,返回名称数组。 4.3.6 DeleteNTFSStream(ByVal sStreamName As String) As Boolean 删除指定数据流,返回执行结果。 参数列表 类型 传递方式 参数说明 sStreamName String Byval 文件名

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值