您的位置:首页 > 编程语言 > Qt开发

QT文件操作

2012-03-05 15:39 363 查看
QT文件操作举例:一个控制台程序//#include <QtCore/QCoreApplication>
#include <QMap>
#include <QColor>
#include <QFile>
#include <QImage>
#include <QtDebug>
#include <iostream>

using namespace std;

/* 操作二进制文件 */
bool writeFile1(const char * filename)
{
/* QImage image("1.bmp");
QMap<QString, QColor> map;

map.insert("red", Qt::red);
map.insert("green", Qt::green);
map.insert("blue", Qt::blue);*/

QFile file(filename);
if(!file.open(QIODevice::WriteOnly))
{
cerr<<"Cannot open file for writing: " << qPrintable(file.errorString()) << endl;
return false;
}

QDataStream out(&file);
out.setVersion(QDataStream::Qt_4_3);
//out << quint32(0x12345678) << image << map;
out << "What can I do for you?\n";
out << " Hello my baby\n";
file.close();

return true;
}

bool readFile1(const char *filename)
{
QImage image;
QMap<QString, QColor> map;
QFile file(filename);
if(!file.open(QIODevice::ReadOnly))
{
cerr<<"Cannot open file for reading: " << qPrintable(file.errorString()) << endl;
return false;
}

QDataStream in(&file);
in.setVersion(QDataStream::Qt_4_3);
//in >> n >> image >> map;
char *line = new char[1024];
while(!in.atEnd())
{
in >> line; // 会将换行符读取到line中
cout << line;
}
file.close();
delete [] line;

//image.save("a.bmp");

return true;
}

/* 操作文本文件 */
bool writeFile2(const char * filename)
{
/* QImage image("1.bmp");
QMap<QString, QColor> map;

map.insert("red", Qt::red);
map.insert("green", Qt::green);
map.insert("blue", Qt::blue);*/

QFile file(filename);
if(!file.open(QIODevice::WriteOnly))
{
cerr<<"Cannot open file for writing: " << qPrintable(file.errorString()) << endl;
return false;
}

QTextStream out(&file);
//out << quint32(0x12345678) << image << map;
out << "What can I do for you?\n";
out << " Hello my baby\n";
file.close();

return true;
}

bool readFile2(const char *filename)
{
QFile file(filename);
if(!file.open(QIODevice::ReadOnly))
{
cerr<<"Cannot open file for reading: " << qPrintable(file.errorString()) << endl;
return false;
}

QTextStream in(&file);
char line[1024] = {0};
while(!in.atEnd())
{
strcpy(line, in.readLine().toStdString().c_str()); // 不会将换行符读取过来
cout << line << endl;
}
file.close();

return true;
}

int main()
{
//QCoreApplication a(argc, argv);
char infile[] = "facts.dat";
/* if(writeFile1(infile))
{
readFile1(infile);
}*/

if(writeFile2(infile))
{
readFile2(infile);
}

return 0;//a.exec();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt file image delete