QFile QDataStream QTextStream
#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(©_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的更多相关文章
- 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 ...
- (十四)QFile操作,QByteArray,文件流操作,QTextStream,QDataStream,QFileInfo, QIODevice
QFile f 1.readall #include "widget.h" #include "ui_widget.h" #include <QFileD ...
- QT文件(夹)操作---QFile、QDir、QFileInfo、QTextStream和QDataStream异同
1.1 文件和目录 QFile.QBuffer和QTcpSocket可支持读写设备,用open函数打开,用write或putChar函数写入.用read和readLine或readAll进行读取 ...
- Qt笔记——QFile,QDataStream,QTextStream
QFile #ifndef WIDGET_H #define WIDGET_H #include <QWidget> namespace Ui { class Widget; } clas ...
- 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 ...
- 使用QFile进行文件操作(QFile可以使用FILE *指针,还必须指定AutoCloseHandle)
QFile类我我们提供了操作文件的常用功能.它是一种io设备,可以用来读写文本文件和二进制文件,也可以用来读写Qt的资源文件.QFile类可以单独使用,该类本身提供了read/write函数,但更方便 ...
- Qt:QFile、QIODevice
QFile 0.说明 QFile是读写文件的类,这里的文件包括文本文件.二进制文件.资源文件. 通常情况下,文件读写使用QFile.QTextStream.QDataStream就够了. file n ...
- Qt: 把内容写进字符串中与C++很相似(使用QTextStream包装QString)
#include <iostream>#include <QChar>#include <QFile>#include <QTextStream>#in ...
- Qt:QTextStream
0.说明 QTextStream提供了读写文本文件的接口. QTextStream可以操作QIODevice, QByteArray 和 QString,调用QTextStream的流操作可以方便的 ...
随机推荐
- poj2488骑士马走
#include<stdio.h> #include<stdlib.h> int data[100][100] = {0}; int Dx[8] = {-1,1,-2,2,-2 ...
- nginx 不带www到www域名的重定向
如果是单次重定向用 redirect, 如果永久跳转用 permanent,这里用 permanent { listen 80; server_name xxx.com www.xxx. ...
- 带你玩转JavaWeb开发之六-mysql基本语法详解及实例(4)
按照分类的名称统计每个分类商品所花的总钱数[排序查询] SQL中对查询的列进行排序,使用关键字order by.默认情况下是升序的排序(从小到大的排序顺序关键字 asc).使用降序排序需要使用关键字d ...
- js常用关键字和函数
document.createElement("div"): 创建一个div元素申明一个变量 document.body.appendChild(div); 将创建好的div添 ...
- Runtime详解
http://yulingtianxia.com/blog/2014/11/05/objective-c-runtime/
- scala中的Actor
1.介绍 2.简单示例 3.第二个程序 4.通信程序 package day01 import scala.actors.Actor case class Message(content: Strin ...
- 两个有意思的模式在ECMAScript中的实现
简介 本篇文章对设计模式进行了筛选, 只列举两个有意思(坑)的设计实现, 如有错误愿闻其详. 构造函数 ECMAScript中的构造函数和其他语言的有那么点特别之处,可以认为, 一个函数, 如果被以n ...
- Selenium2学习-040-JavaScript弹出框(alert、confirm、prompt)操作演示实例
弹出框是网页自动化测试常见得操作页面元素之一,常见的JavaScript弹出框有如下三种: 1.alert(message):方法用于显示带有一条指定消息和一个 OK 按钮的警告框.DemoAlert ...
- 导入excel2007文件问题
基于oledb方式导入excel2007文件时,使用如下链接字符串: string strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Sour ...
- myeclipse,eclipse控制台输出乱码问题
首先我描述一下问题,我在做udp socket编程(一个聊天的程序)的时候,从控制台中读取中文,然后再向控制台中打印,出现中文乱码的情况. 1.出现乱码最根本的原因就是编码和解码不一致的情况.问题分析 ...