文章地址
http://blog.csdn.net/ei__nino/article/details/7301132
http://blog.csdn.net/xgbing/article/details/7772953
文件读写
QDataStream
http://blog.csdn.net/u010847519/article/details/68065599
#include "mainwindow.h"
#include <QApplication>
#include<QImage>
#include<QFile>
#include<QMap>
#include<QDataStream>
#include<QString>
#include<QColor>
#include<QIODevice>
#include<iostream>
using namespace std;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QImage image(":/p.png");
QMap<QString, QColor> map;
map.insert("red", Qt::red);
map.insert("green", Qt::green);
map.insert("blue", Qt::blue);
QFile file("facts.dat");
if (!file.open(QIODevice::WriteOnly)) {
std::cerr << "Cannot open file for writing: "
<< qPrintable(file.errorString()) << std::endl;
}
QDataStream out(&file);
out.setVersion(QDataStream::Qt_4_3);
out << quint32(0x12345678) << image << map;
return a.exec();
}
QTextStream
http://blog.csdn.net/u010847519/article/details/69212844
写入文件
QFile file("sf-book.txt");
if (!file.open(QIODevice::WriteOnly)) {
std::cerr << "Cannot open file for writing: "
<< qPrintable(file.errorString()) << std::endl;
return;
}
QTextStream out(&file);
out << "Thomas M. Disch: " << 334 << endl;
QString fileName=“D:/Lib/1.txt");
QString str="CSDN";
QFile file(fileName);
if(!file.open(QIODevice::ReadWrite | QIODevice::Text))
{
QMessageBox::warning(this,"sdf","can't open",QMessageBox::Yes);
}
QTextStream in(&file);
in<<str<<"\n";//如果写多行,同上循环即可
file.close();
读文件
QString fileName = "D:\Lib\1.txt";
QString str;
QFile file(fileName);
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
QMessageBox::warning(this,"Warnning","can't open",QMessageBox::Yes);
}
QTextStream in(&file);
str=in.readLine();//读取一行
QString str2[MAX];
for(int 1=0 ;i<MAX; i++)//读取多行的代码
str2[i]=in.readLine();
file.close();
File知识点详解
file代码片段
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
open参数
QIODevice::Text在读写文本文件时使用,这样可以自动转化换行符为本地换行符
读写中文文件—QTextCodec
QTextCodec 类:提供文本编码之间的转换。
#include <qstring.h>
#include <qfile.h>
#include <qtextstream.h>
#include <qtextcodec.h>
int main()
{
QFile file("test.txt");
if (file.open(IO_ReadOnly|IO_Raw))
{
QTextStream floStream(&file);
QString line;
QTextCodec *codec=QTextCodec::codecForName("GBK");
floStream.setCodec(codec);
while ( floStream.atEnd()==0 )
{
line = codec->fromUnicode(floStream.readLine());
qWarning(line);
}
file.close();
}
return 0;
}
删除文件
QString fileName=“D:/Lib/1.txt");
QFile file;
file.remove(fileName);
文件名去扩展名
QString fileName="1.txt";
int index = fileName.lastIndexOf(".");
fileName.truncate(index);
QMessageBox::warning(this,"Tips",fileName,QMessageBox::Yes);//现在的fileName就是"1"
//同理,lastIndexOf是找最后一个符合条件的位置,将文件名按字符串来处理就好了
添加路径和扩展名
QString fienName = "1";
fileName.prepend("D:\Lib\");
fileName.append(".txt");
QMessageBox::warning(this,"Tips",fileName,QMessageBox::Yes);//fileName 为"D:\Lib\1.txt"//总之是对QString的简单操作而已