#include <QCoreApplication>
#include <QMap>
#include <QFile>
#include <QDir>
#include <QDebug>
#include <QTextStream>
#include <QDataStream>
#include <QLinkedList>
void qDirTest()
{ QDir dir("F:/NVIDIA");
qDebug() << dir.exists() ;
qDebug() << dir.absolutePath();
dir.cdUp();
qDebug() << dir.absolutePath() << "\n-------"; dir.cd("NVIDIA");
qDebug() << dir.dirName(); QString path = "E:/test_dir";
QDir dir_test(path);
if(!dir_test.exists())
{
dir_test.mkdir(path);
}
dir_test.rmdir("E:/test_dir"); // Show The Drive of files
QString dir_path = "E:/";
QDir dir_list(dir_path);
foreach( QFileInfo item,dir_list.entryInfoList())
{
if(item.isFile())
{
qDebug() << item.absoluteFilePath() <<" --->is File";
}
if(item.isDir())
{
qDebug() << item.absoluteFilePath() <<" --->is Dir";
}
} } // QFile TEST namespace QFileTextDataStream
{
void write_text_stream(QString name)
{
QFile wFile(name);
if(!wFile.open(QFile::WriteOnly | QFile::Text)) // IT's FILE *
{
qDebug () << "open files error";
} QTextStream stream(&wFile);
stream << "Hello World\n" << "This is jack"; wFile.flush();
wFile.close();
}
void read_text_stream(QString name)
{ QFile rFile(name);
if(!rFile.open(QFile::ReadOnly | QFile::Text)) // IT's FILE *
{
qDebug () << "open files error";
}
QTextStream in(&rFile);
QString data = in.readAll();
qDebug() << data; } void QFileTextTest(QString FileName)
{
qDebug () << "write file test";
write_text_stream(FileName);
qDebug() << "now Reading";
read_text_stream(FileName);
} void write_binary_stream(QString name)
{
QFile file(name);
if(!file.open(QIODevice::WriteOnly))
{
qDebug () << "error";
}
QDataStream out(&file);
out << QString("Houdini ") << ;
file.flush();
file.close();
}
void read_binary_stream(QString name)
{
QFile file(name);
if(!file.open(QIODevice::ReadOnly))
{
qDebug () << "error";
}
QDataStream read(&file);
QString fname;
int val;
read >> fname >> val;
qDebug() << fname<<":" << val;
file.flush();
file.close();
} } namespace DataCore
{
void data_struction_test()
{
QMap<int ,QString> map;
map.insert(,"Houdini");
map.insert(,"nuke");
map.insert(,"maya");
foreach (int i,map.keys())
{
qDebug() << map[i] ;
} } }
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
//DirTest();
//QFileTextDataStream::QFileTest("F:/test.txt");
QFileTextDataStream::write_binary_stream("F:/test.binary");
QFileTextDataStream::read_binary_stream("F:/test.binary");
//DataCore::data_struction_test();
return a.exec();
}

QTextStream QDataStream

CopyFile Method 1:

// QFile And QDataStream
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QFile file("F:/dj.mp3");
if(!file.open(QFile::ReadOnly)){
perror("error open\n");
return ;
} QFile copy_file("F:/copytest.mp3");
if(!copy_file.open(QFile::WriteOnly)){
perror("error write open\n");
return ;
} QDataStream from_data(&file);
QDataStream to_data(&copy_file); int buffer_size = ;
char data[buffer_size];
while(!file.atEnd())
{
from_data.readRawData(data,buffer_size);
to_data.writeRawData(data,buffer_size);
} file.close();
copy_file.close();
fprintf(stdout,"%s \n","end reading");
return a.exec();
}

CopyFile Method 2:

QCoreApplication a(argc, argv);
QFile file("F:/houdini-13.0.509.exe");
if(!file.open(QFile::ReadOnly))
{
perror("error open\n");
return ;
} QFile copy_file("F:/copytest.exe");
if(!copy_file.open(QFile::WriteOnly))
{
perror("error write open\n");
return ;
} QByteArray line;
while(!file.atEnd())
{
line.clear();
line =file.read();
copy_file.write(line);
} fprintf(stdout,"%s \n","end reading");
file.close();
copy_file.close();
return a.exec();

DataStream And ByteArray

#include <QCoreApplication>
#include <QDataStream>
#include <QByteArray>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QByteArray block;
QDataStream stream(&block,QIODevice::WriteOnly);
stream<<quint16() << QString("Houdini")<<QString("Maya");
stream.device()->seek();
stream<<quint16();
qDebug() << block; // read back
QDataStream stream_read(&block,QIODevice::ReadOnly);
quint16 val;
QString name;
QString func;
stream_read>>val >>name >>func; qDebug() << val << name <<func; return a.exec();
}

分割文件流:)

void get_buffer_split2(QByteArray readInArray,QList<QByteArray> &data,int buffer_size)
{ float t = buffer_size;
int num = ceil(float(readInArray.size())/float(t)); for(int i=;i<=num;i++)
{
QByteArray _temp = readInArray.left(buffer_size);
readInArray.remove(,buffer_size);
data.push_back(_temp);
}
} int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QByteArray readArray;
QFile readFile("/home/gearslogy/icon.png");
if(!readFile.open(QFile::ReadOnly))
{
qDebug() << "error read file";
readFile.close();
return ;
}
readArray = readFile.readAll(); QList<QByteArray> split_data;
get_buffer_split2(readArray,split_data,); QFile writeFile("/home/gearslogy/iconCopy.png");
if(!writeFile.open(QFile::WriteOnly))
{
qDebug() << "write file error";
writeFile.close();
return ;
} for(int i=;i<split_data.size();i++)
{
QByteArray _temp = split_data[i];
writeFile.write(_temp);
}
writeFile.close(); return a.exec();
}

QFile QDataStream QTextStream的更多相关文章

  1. 4.关于QT中的QFile文件操作,QBuffer,Label上添加QPixmap,QByteArray和QString之间的区别,QTextStream和QDataStream的区别,QT内存映射(

     新建项目13IO 13IO.pro HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += gui widgets network CON ...

  2. (十四)QFile操作,QByteArray,文件流操作,QTextStream,QDataStream,QFileInfo, QIODevice

    QFile f 1.readall #include "widget.h" #include "ui_widget.h" #include <QFileD ...

  3. QT文件(夹)操作---QFile、QDir、QFileInfo、QTextStream和QDataStream异同

    1.1    文件和目录 QFile.QBuffer和QTcpSocket可支持读写设备,用open函数打开,用write或putChar函数写入.用read和readLine或readAll进行读取 ...

  4. Qt笔记——QFile,QDataStream,QTextStream

    QFile #ifndef WIDGET_H #define WIDGET_H #include <QWidget> namespace Ui { class Widget; } clas ...

  5. 4.关于QT中的QFile文件操作,QBuffer,Label上加入QPixmap,QByteArray和QString之间的差别,QTextStream和QDataStream的差别,QT内存映射(

     新建项目13IO 13IO.pro HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += gui widgets network CON ...

  6. 使用QFile进行文件操作(QFile可以使用FILE *指针,还必须指定AutoCloseHandle)

    QFile类我我们提供了操作文件的常用功能.它是一种io设备,可以用来读写文本文件和二进制文件,也可以用来读写Qt的资源文件.QFile类可以单独使用,该类本身提供了read/write函数,但更方便 ...

  7. Qt:QFile、QIODevice

    QFile 0.说明 QFile是读写文件的类,这里的文件包括文本文件.二进制文件.资源文件. 通常情况下,文件读写使用QFile.QTextStream.QDataStream就够了. file n ...

  8. Qt: 把内容写进字符串中与C++很相似(使用QTextStream包装QString)

    #include <iostream>#include <QChar>#include <QFile>#include <QTextStream>#in ...

  9. Qt:QTextStream

    0.说明 QTextStream提供了读写文本文件的接口. QTextStream可以操作QIODevice,  QByteArray 和 QString,调用QTextStream的流操作可以方便的 ...

随机推荐

  1. Thinkphp框架

    MVC思想: 1. 简单来说, M 即模型, m是Model的第一个字母,它用于管理程序的数据,因此它也是连接我们的PHP程序和数据库的功能.通常在模型类这一块,框架通常会使用ORM(对象关系映射). ...

  2. ECMAScript Web APIs node.js

    https://hacks.mozilla.org/2015/04/es6-in-depth-an-introduction/ What falls under the scope of ECMASc ...

  3. A Taxonomy of Computer Organizations

    COMPUTER OR GANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION

  4. java 反射获取类的属性 类型 名称和值

    /** * 获取属性类型(type),属性名(name),属性值(value)的map组成的list * */ private List getFiledsInfo(Object o){ Field[ ...

  5. 自动化测试工具——JMeter

    Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试静态和动态资源,例如静态文 ...

  6. Stripe开发笔记之-ISO Currency Code(ISO 4217)

    参考:维基百科和ISO官网 ISO Currency Code:国际标准组织通用货币代号,国际标准化组织(英语:International Organization for Standardizati ...

  7. oracle sqlplus 格式化输出

    1- show pagesize      ###显示页行数 set pagesize 300 ###显示页行数为300 2- show linesize        ###显示行宽度 set li ...

  8. 理解会话Session

  9. Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序

    静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行.执行顺序优先级:静态块,main(),构造块,构造方法. 构造函数 public H ...

  10. Redhat 7 或者 CentOS 7 密码破解

    1.在如下界面按 e 2.在 linux16 这一行的最后面添加 rd.break,然后按 ctrl + x 进入单用户模式 3.以读写的方式重新挂载 sysroot 4.切换到 sysroot 目录 ...